Как это происходит в реальности, наверное, знает Кирилл Циберкин. Он по этой теме защитил докторскую диссертацию и последние 5 лет работал над этой задачей.
1. Почему llg_rhs разные? Форма Гилберта ($1/(1+\alpha^2)$) vs форма Ландау–Лифшица (без неё) — разница пренебрежимо мала при $\alpha=0.005$. Но знак damping отличался: 1D-оригинал имел + (антидемпфинг при $\gamma > 0$), 2D-оригинал имел - (правильно). При обезразмеривании я поменял знак, не сказав об этом.
2. Шаг сетки. Без μ0: $dy' \approx 157$ — огромный, тривиально устойчивый, но физика неверна. С μ0: $dy' \approx 0.18$, и критерий устойчивости RK2 для LLG — не $dt \leq dy^2/2$ (это для диффузии), а $u = 4dt/dy^2 \lesssim 0.3$ (прецессия + слабый демпфинг). 2D-код: $u \approx 0.11$ — на грани, но устойчив.
3. Стенка не расплывалась из-за комбинации всех трёх багов. «Презумпция виновности» полностью оправдалась.
В относительно низких полях колебания все равно есть, а значит и волны тоже. Возможно, они распространяются очень медленно и мы их на гифке не успеваем увидеть.
Спасибо за важное уточнение, исправлю.
Спасибо вам большое за содержательную беседу, уже статья собрала целых 65 комментариев!
Можете поделиться своими картинками? А экспериментировали ли вы с реальными ферромагнетиками (пермаллоем, и т. д.)?
В ходе своей научной работы вы делали что-то подобное? То есть проводили моделирование уравнение ЛЛГ, писали код, получали подобные картинки, гифки?
А ведь вы тоже защитили кандидатскую по теме спиновой динамики?
Как это происходит в реальности, наверное, знает Кирилл Циберкин. Он по этой теме защитил докторскую диссертацию и последние 5 лет работал над этой задачей.
А как можно исправить исходную статью? Полностью переделывать или писать новую длинную на ту же тему я не собираюсь.
1. Почему
llg_rhsразные? Форма Гилберта ($1/(1+\alpha^2)$) vs форма Ландау–Лифшица (без неё) — разница пренебрежимо мала при $\alpha=0.005$. Но знак damping отличался: 1D-оригинал имел+(антидемпфинг при $\gamma > 0$), 2D-оригинал имел-(правильно). При обезразмеривании я поменял знак, не сказав об этом.2. Шаг сетки. Без
μ0: $dy' \approx 157$ — огромный, тривиально устойчивый, но физика неверна. Сμ0: $dy' \approx 0.18$, и критерий устойчивости RK2 для LLG — не $dt \leq dy^2/2$ (это для диффузии), а $u = 4dt/dy^2 \lesssim 0.3$ (прецессия + слабый демпфинг). 2D-код: $u \approx 0.11$ — на грани, но устойчив.3. Стенка не расплывалась из-за комбинации всех трёх багов. «Презумпция виновности» полностью оправдалась.
Вот исправленный код:
В результате получим:
Теперь всё верно? Дан ответ на все вопросы? Проблема решена? Полученная модель соответствует реальности?
Вот я сделал процедуру обезразмеривания и результат теперь другой:
Теперь всё реалистично
Сделал обезразмеривание в исходном 2D коде.Результат теперь принципиально другой:
Стало реалистичнее?
Проблема с пространственно разрывной намагниченностью решена?
Теперь всё полностью корректно:
результат-
стало быстрее, но всё непрерывно
Вот сделал обезразмеривание и убрал нормировку как вы просили. Результат такой же:
Все непрерывно.
Вот код как был получен этот график.
В любом случае спасибо вам большое за интересную беседу.
Всё непрерывно, никакой пространственно разрывной намагниченности нет.
Если можно взять вторую производную(как вы утверждаете), то намагниченность непрерывна по y.
На какой конкретно картинке видно пространственно разрывную намагниченность? Я не вижу.
Что экстраординарного в этом результате?
В относительно низких полях колебания все равно есть, а значит и волны тоже. Возможно, они распространяются очень медленно и мы их на гифке не успеваем увидеть.
Задавайте вопросы, в чем я не разобрался?
Устойчивость численного метода (динамических систем) можно оценить при помощи показателя Ляпунова. С устойчивостью счета я разобрался.