Обновить

Спиновая динамика в анимациях: моделируем волны намагниченности в ферромагнетиках с помощью python

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели6.7K
Всего голосов 5: ↑4 и ↓1+5
Комментарии33

Комментарии 33

ЗакрепленныеЗакреплённые комментарии

Общий подход в такого рода вещах примерно такой. Запускаете моделирование и долго на него смотрите. Спрашиваете себя, а понимаю ли я, что здесь происходит. Например, на картинке, подписанной "Волна на плоскости", никакой волны не видно. Область, в которой задано начальное отклонение, как-то себе крутится, а все остальное остается в покое. На первый взгляд, на границе, отделяющей область начального отклонения, лапласиан магнитного момента должен быть весьма значительным, что создает эффективное поле с компонентой нормальной исходному магнитному моменту. Значит, около области исходного отклонения магнитные моменты тоже должны начать крутиться и т.д. Т.е. в самом деле должно получиться распространяющееся возмущение, а его нет. В чем дело?

По картинкам, показанным в тексте, можно много вопросов позадавать, но начать нужно с самых базовых, самых простых. Скорость распространения возмущения, время жизни начального возмущения (да и можно ли поставить вопрос о времени жизни, если нет затухания?), насколько физично задавать начальное возмущение в том виде, как это сделано в модели, а как проверить, что модель записана правильно и нигде в коде никаких минусов не потерялось, и т.д., и т.п.

Ромбическая форма распространения волны как бы намекает что во всём этом скрыты артефакты вычислений и результатам не стоит верить на 100%.

Но параметры среды соответствуют реальному веществу- пермаллою

Автор прямо так гиперактивно на меня ссылается, аж жуть.

Поэтому дисклеймер: его работы к моим никакого содержательного отношения не имеют!

А насколько мои анимации соответствуют действительности?

У вас ни масштабы времени не описаны, ни шаг решётки, ни остальные параметры — как они соотносятся с реальностью? Разберитесь, подставьте, сравните с реальностью, которую можно найти в статьях.

А то вы с темы на тему прыгаете, моделируете всё что под руку попадается, без глубокого погружения и анализа, но вместе с тем мечтаете в комментариях о публикациях. Любое исследование — это прежде всего систематическая долбёжка одной проблемы с тщательным и обоснованным выбором методов, а не накидывание красивых картинок спорной реалистичности, а не прыжки от распределения температур к ОТО, потом к полям магнитов, затем к гидродинамике, затем к уравнениям ЛЛГ. Как некоторые радиолюбители‑паяльщики, которым прежде всего важен процесс пайки — а сборка и настройка готовой конструкции откладывается в долгий ящик.

Определитесь сперва, что вам интересно, и потом уже вгрызайтесь в эту тему.

В коде чётко прописаны все ключевые параметры среды и сетки:

# ================= ПАРАМЕТРЫ (Хабр‑режим) =================

Nx, Ny = 64, 64 # сетка 64x64

dx = 10e-9 # шаг сетки 10 нм (крупнее → устойчивее и быстрее)

dt = 5e-13 # шаг по времени 0.5 пс

steps = 1200 # сколько шагов считать

save_every = 15 # сохранять каждый 15‑й кадр

gamma = 2.211e5 # гиромагнитное отношение alpha = 0.005 # небольшое затухание (чтобы волна не «звенела» вечно) A_ex = 1.3e-11 # обменная константа Ms = 8e5 mu0 = 4 np.pi 1e-7

H_ext = 4.0e4 # УВЕЛИЧЕННОЕ поле (4 Т) — чтобы динамика была видна

Ну а хоть на какой-нибудь реальный магнетик эти числа похожи?

Эти параметры очень близко описывают пермаллой (Permalloy) — сплав на основе железа и никеля (обычно ~80 % Ni, 20 % Fe).

  • Ms​=8⋅105 А/м — попадает в диапазон 7.5–8.5⋅105 А/мЭто классика для Ni80​Fe20.

  • Aex=1.3⋅10−11 Дж/мA— тоже типично для пермаллоя (часто берут 1.3 или 1.4⋅10−11.

  • γ=2.211⋅105 рад/(с ⋅А/м)— соответствует гиромагнитному отношению для намагниченности насыщения пермаллоя.

  • α=0.005 — реалистичное значение для качественного пермаллоя в тонких плёнках. В образцах с хорошей кристаллической структурой и малой дефектностью затухание бывает порядка 0.003–0.008

Эту статью я специально написал под тему ваших научных интересов

Что касается разнообразия тем для моих статей, то в одном из постов вы писали следующее:

Поскольку физик‑теоретик — понятие очень абстрактное, размытое и растяжимое, заниматься по научной тематике доводилось различными задачами. Гидродинамика, нелинейные процессы, спектральный и вейвлет‑анализ, немного биомедицинских работ. Это всё немного пылится в прошлом, а сейчас основной темой стали спиновая динамика и всяческие волны намагниченности в твёрдых телах.

Источник:https://habr.com/ru/articles/737624/

Эту статью я специально написал под тему ваших научных интересов: вы же недавно защитили докторскую диссертацию по этой тематике (спиновая динамика и волны намагниченности). Материал интересный и уникальный: до меня такого никто на Хабре не делал. Параметры среды соответствуют реальному веществу- пермаллою, мне было очень интересно их двигать и смотреть на полученные анимации (как меняется динамика). Думаю, вам тоже интересно их посмотреть...

Сейчас я стараюсь делать качественный научно-популярный контент с полноценными анимациями, кодом, формулами и списком литературы. Кстати, нейросеть (Алиса) мне в этом отлично помогает: она мне пишет код по теме, которую я попросил, остаётся только накидать текста и формул с гиперссылками- вуаля, и статья готова за всего 1-3 дня.

Современные технологии шагнули вперёд. То, чему люди раньше учились несколько лет в ВУЗах, сейчас с нейросетями спокойно может делать толковый человек даже без специального образования...

Нейросети не заменят понимания

Ну я же примерно понимаю моделируемые физические явления (сдал ЕГЭ по физике на 97 баллов).

Я же написал :толковый человек.

Сданный егэ показывает лишь, что вы имеете достаточную базу для продолжения профильного обучения.

Вы же просто хватаете очередные попавшиеся вам под руку уравнения, и пишете для них код, который еле работает, не зная даже элементарных особенностей схем и оценки устойчивости, и прикрываясь числом Куранта, которое, конечно, критерий устойчивости, но оно ничего не говорит о монотонности и консервативности схем. Вы же даже не в состоянии самостоятельно оценить корректность результатов, раз постоянно спрашиваете об этом. Результат нужно защитить, обосновать, а не жалостливо просить посмотреть на него.

Возьмите десятитомник Ландау и посмотрите там задачи после параграфов, задачи к курсу лекций Фейнмана, задачник по теорфизике Гречко или Белоусова, сборник качественных задач «Понимаете ли вы физику» Капицы. Если сможете хотя бы в 10–20 процентах задач по какому‑нибудь разделу физики сделать первый шаг без генератора случайных слов нейросети — да, вы что‑то понимаете в этом разделе.

Преодолейте этот уровень, поймите, насколько иронично выглядят ваши расчёты во всех статьях — если получится, можно продолжать. И найти какого‑нибудь научрука, который разделит ваш энтузиазм.

А как можно обосновать, что при постепенно увеличении внешнего поля колебания сначала ускорились потом значительно замедлились и стали хаотичными, а потом опять ускорились и стали синхронными? Напишите пожалуйста, я вставлю в статью.

Вы автор результата. Вам обосновывать происходящее, а также доказывать, что этого никто раньше не получал

При постепенном увеличении амплитуды внешнего поля в системе, описываемой уравнением ЛЛГ, наблюдается последовательность качественно различных режимов колебаний. На начальном этапе слабое поле действует как малая модификация эффективного поля, задаваемого материалом (включая анизотропию и размагничивающие поля). В этих условиях система демонстрирует ускорение колебаний: внешнее поле начинает резонансно «подхватывать» собственные моды прецессии намагниченности, что приводит к росту амплитуды и частоты отклика. 

По мере дальнейшего роста поля нелинейные эффекты выходят на первый план. Эффективный потенциал, определяющий динамику вектора намагниченности, усложняется: возникают дополнительные минимумы, барьеры, области с сильной зависимостью от угла между намагниченностью и полем. В такой ситуации даже небольшое возмущение может привести к тому, что траектории в фазовом пространстве начинают пересекать границы различных резонансных областей. Это порождает сложную интерференцию мод, бифуркации и, как следствие, переход к хаотическому режиму: колебания становятся нерегулярными, их частота и амплитуда перестают быть предсказуемыми. academia.edu +1

При ещё более сильных полях система может выйти на новый упорядоченный режим. В определённых областях параметра (например, когда внешнее поле доминирует и задаёт чёткий «ведущий» ритм) снова возникает условие для устойчивой синхронизации. Система «захватывается» в новый резонансный режим: колебания стабилизируются, их частота и фаза выстраиваются в регулярный, синхронный ритм. Важно отметить, что эта синхронная стадия не обязательно возвращает систему к исходной простой картине — скорее, возникает новый, возможно, более сложный, но упорядоченный режим.» pps.kaznu.kz +1

А если без ИИ, а своей головой?

Частота от внешнего поля
Частота от внешнего поля
  1. Вначале внешнее поле невелико, доминирующим вкладом в H_eff становится само внешнее поле.  В этом случае можно приближённо считать, что H_eff ≈ μ₀H_ext (с учётом магнитной постоянной). Тогда прецессия вектора M происходит с частотой, близкой к ларморовской, и частота колебаний линейно от него зависит.

  2. При увеличении поля вклад других составляющих H_eff (анизотропия, обмен) становится сопоставимым с вкладом внешнего поля. Система становится чувствительной к начальным условиям и малым возмущениям. Решение уравнения ЛЛГ в этой области перестаёт быть простым гармоническим колебанием — появляются сложные, нелинейные траектории. 

  3. При достаточно большом внешнем поле система может выйти на новый устойчивый режим.

Я добавил ещё оценку устойчивости при помощи показателя Ляпунова, чтобы обосновать это всё:

Устойчивость динамики намагниченности оценивалась по локальному показателю Ляпунова, рассчитанному численно путём сравнения двух близких траекторий в фазовом пространстве. При малых значениях внешнего поля показатель λ<0, что соответствует устойчивым регулярным колебаниям (режим ускорения). В промежуточной области наблюдается переход к λ>0, указывающий на возникновение хаотической динамики и чувствительность к начальным условиям. При высоких полях показатель снова становится отрицательным (λ<0), что свидетельствует о восстановлении устойчивости и переходе к режиму вынужденной синхронизации.

При этом показатель Ляпунова на всём диапазоне колебался около нуля, но на подавляющем большинстве интервалов оставался отрицательным.

Показатель Ляпунова в диапазоне 5е6-1е9
Показатель Ляпунова в диапазоне 5е6-1е9

Теперь эту работу можно защитить перед вами, известным специалистом по спиновой динамике и доктором физико-математических наук. Задавайте вопросы.

А сейчас можно ли считать полученный результат полностью обоснованным и защитить его перед вами??

Скажите пожалуйста, в ходе научных исследований по спиновой динамике делали ли вы что-то подобное (писали код, делали такую же симуляцию)?

Я в этом отношении классический теоретик. Первопринципные модели и аналитические результаты в первую очередь. Численный счёт сильно потом.

Ну и наконец, могут ли уравнения ЛЛГ, Навье-Стокса, теории относительности, температурного и магнитного поля и т. д. вдруг выпасть на школьном ЕГЭ по физике?

Вы в этом вопросе снова пытаетесь подменить знание и понимание физики знанием вида уравнений

Если уж говорить про школу - у меня один из любымых тестов на понимание физики: зачем нужен первый закон Ньтона, если есть второй? Те кто видят физику только через уравнения - ответить не могут. “Ньютон придумал бесполезный закон” :)

Общий подход в такого рода вещах примерно такой. Запускаете моделирование и долго на него смотрите. Спрашиваете себя, а понимаю ли я, что здесь происходит. Например, на картинке, подписанной "Волна на плоскости", никакой волны не видно. Область, в которой задано начальное отклонение, как-то себе крутится, а все остальное остается в покое. На первый взгляд, на границе, отделяющей область начального отклонения, лапласиан магнитного момента должен быть весьма значительным, что создает эффективное поле с компонентой нормальной исходному магнитному моменту. Значит, около области исходного отклонения магнитные моменты тоже должны начать крутиться и т.д. Т.е. в самом деле должно получиться распространяющееся возмущение, а его нет. В чем дело?

По картинкам, показанным в тексте, можно много вопросов позадавать, но начать нужно с самых базовых, самых простых. Скорость распространения возмущения, время жизни начального возмущения (да и можно ли поставить вопрос о времени жизни, если нет затухания?), насколько физично задавать начальное возмущение в том виде, как это сделано в модели, а как проверить, что модель записана правильно и нигде в коде никаких минусов не потерялось, и т.д., и т.п.

Обосновать полученный результат можно так:

  1. Вначале внешнее поле невелико, доминирующим вкладом в H_eff становится само внешнее поле.  В этом случае можно приближённо считать, что H_eff ≈ μ₀H_ext (с учётом магнитной постоянной). Тогда прецессия вектора M происходит с частотой, близкой к ларморовской, и частота колебаний линейно от него зависит.

  2. При увеличении поля вклад других составляющих H_eff (анизотропия, обмен) становится сопоставимым с вкладом внешнего поля. Система становится чувствительной к начальным условиям и малым возмущениям. Решение уравнения ЛЛГ в этой области перестаёт быть простым гармоническим колебанием — появляются сложные, нелинейные траектории. 

  3. При достаточно большом внешнем поле система может выйти на новый устойчивый режим.

Зависимость частоты от внешнего поля
Зависимость частоты от внешнего поля

Вначале внешнее поле невелико, доминирующим вкладом в H_eff становится само внешнее поле. 

А это действительно так? Все же, на первый взгляд, зависимость (скажем, вертикальной, по картинке, компоненты) намагниченности от координаты выглядит разрывной функцией: вот здесь, за пределами области начального отклонения, она ноль, а вот здесь - совсем не ноль. Уже первая производная такой функции равна бесконечности, а про вторую и говорить не надо. Т.е. в пространственной области перехода от возмущенной намагниченности к исходной эффективное поле может быть как угодно большим. Более точно, оно будет обратно пропорционально квадрату ширины этой области. В используемой модели минимальный масштаб - шаг решетки, т.е. 10 нм. Т.к. моделирование не позволяет увидеть эффект разрыва намагниченности, можно сделать вывод, что шаг слишком большой для того, чтобы вообще увидеть эффект обменного взаимодействия: взаимная ориентация намагниченности в соседних узлах расчетной решетки может быть какой угодно. Или же какая-то другая неполадка происходит в коде.

Как, вообще, отвечать на вопрос о выборе шага решетки? Есть правило "большого пальца" - уменьшили шаг решетки вдвое, посмотрели на результат. Если серьезно не поменялся, то все в порядке. Проблема с этим подходом в том, что он работает только когда шаг с самого начала был примерно таким, каким нужно. А когда он совсем не в тему, то уменьшение в два раза приведет только лишь к тому, что он станет чуть меньше не в тему. Есть у меня связанная с этим история, которая продолжалась несколько месяцев, но это для другого раза.

Мы пришли к одному очень-очень важному выводу. Моделирование должно характеризоваться не материальными, а физическими параметрами. Получается некоторый парадокс: мы хотим что-то промоделировать, но для того, чтобы это сделать, нам уже нужно знать результаты моделирования. И это действительно так. За всем этим стоят свои большие теории, но, к счастью, туда пока можно не соваться.

Первый шаг, который делают в направлении определения физических параметров, максимально обезразмеривают уравнение. Например, намагниченность представляется как единичный вектор, помноженный на некоторую величину, время - безразмерный параметр, умноженный на характерный масштаб, то же с координатой. Записывают уравнение в новых координатах и выбирают характерные масштабы так, чтобы итоговое уравнение имело как можно меньше свободных параметров. Процедура несложная, но проводить ее лучше в явном виде, особенно если уравнение нелинейное, как уравнене Ландау-Лифшица. В модуле, который занимается собственно вычислением динамики, вот этого блока

gamma = 2.211e5       # гиромагнитное отношение
alpha = 0.005         # небольшое затухание (чтобы волна не «звенела» вечно)
A_ex = 1.3e-11        # обменная константа
Ms = 8e5
mu0 = 4 * np.pi * 1e-7

быть не должно. Все эти константы в уравнении, представленном для вычислений, должны быть единицы, а нанометры с наносекундами должны получаться только на стадии вывода результатов для человека.

Тем не менее в коде, представленном в заметке, этот блок присутствует (это плохой знак). Проверяем насколько последовательно материальные параметры представлены в вычислительной части. У меня глаз сразу зацепился за

# Нормировка
norm = np.sqrt(np.sum(M**2, axis=2, keepdims=True))
norm[norm == 0] = 1.0
M = M / norm

Т.е. намагниченность фактически считается единичным вектором, тогда как исходное уравнение записано для физической намагниченности. Поскольку уравнение Ландау-Лифшица нелинейно, на такого рода расхождения нужно смотреть особенно пристально. В данном случае создается впечатление, что эффективно обменное взаимодействие почти на шесть порядков понизилось. Поэтому вполне можно ожидать, что для такого эффективного взаимодействия (т.е. для гипотетического материала) шаг решетки оказался гигантским, и спиновые волны он может не разглядеть.

А что вы можете сказать про оценку устойчивости по Ляпунову? Всё верно?

При чём тут устойчивость по Ляпунову, если вы с устойчивостью счёта разобраться не можете?

Толковые люди идут по толковому пути. Вы утверждаете, что это студенческая работа, в профиле пишете, что стажёр‑энергетик. Если вы правда вхожи в какой‑нибудь университет, то наверняка у вас есть доступ к какой‑нибудь кафедре математики и кафедре физики.

Вы всё время задаёте вопросы, которые сперва должен оценивать научный руководитель, и попутно должен учить вас отвечать на эти вопросы самостоятельно. В этом и есть одна из ключевых сторон квалификации исследователя. Опять же — понимание происходящего в изучаемом явлении. Мало назваться «толковым человеком».

Устойчивость численного метода (динамических систем) можно оценить при помощи показателя Ляпунова. С устойчивостью счета я разобрался.

Я добавил ещё оценку устойчивости при помощи показателя Ляпунова, чтобы обосновать это всё:

Устойчивость динамики намагниченности оценивалась по локальному показателю Ляпунова, рассчитанному численно путём сравнения двух близких траекторий в фазовом пространстве. При малых значениях внешнего поля показатель λ<0, что соответствует устойчивым регулярным колебаниям (режим ускорения). В промежуточной области наблюдается переход к λ>0, указывающий на возникновение хаотической динамики и чувствительность к начальным условиям. При высоких полях показатель снова становится отрицательным (λ<0), что свидетельствует о восстановлении устойчивости и переходе к режиму вынужденной синхронизации.

При этом показатель Ляпунова на всём диапазоне колебался около нуля, но на подавляющем большинстве интервалов оставался отрицательным.

Показатель Ляпунова в диапазоне 5е6-1е9
Показатель Ляпунова в диапазоне 5е6-1е9
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации