Магнитные моменты относительно осей кристалла?
Я использую pymatgen для записи файлов.mcif. Мои структуры всегда имеют коллинеарные магнитные моменты величиной 4 вдоль z, но перед записью их в файл я заметил, что pymatgen преобразует их с помощью функции Magmom.get_moment_relative_to_crystal_axes(). Мои вопросы:
- Что именно делает эта функция?
- Почему для некоторых решеток мои магнитные моменты остаются (0, 0, 4), а для некоторых других я получаю три ненулевых компонента, и даже величины больше не равны 4?
0 ответов
Я на самом деле отвечаю за этот код, поэтому я надеюсь, что смогу ответить на ваш вопрос:)
Короче говоря, есть несколько вещей, которые нужно иметь в виду:
• Предполагая, что когда вы говорите "коллинеарные магнитные моменты всегда вдоль z", вы имеете в виду, что это скалярные коллинеарные моменты, например, из расчета DFT, стоит иметь в виду, что текущий стандарт.mcif не предназначен для представления скалярных моментов, что почему мы произвольно выбираем ось Z. Однако это условно и не имеет физического смысла. Мне сказали, что будущая версия стандарта.mcif будет поддерживать скалярные моменты.
• Мы обычно представляем относительные магнитные моменты в терминах кристаллографических векторов решетки, потому что это обычно более научно обоснованно. Это означает, что нам нужно преобразовать из декартового базиса x, y, z в базис решетки a, b, c. Это то, что Magmom.get_moment_relative_to_crystal_axes()
метод делает.
• Величина результирующего момента должна быть одинаковой; если это не так, то это ошибка (пожалуйста, поделитесь, если у вас есть пример!) Однако обратите внимание, что основа решетки может быть не ортогональной, что может сделать математику немного сложнее.
Что касается вопросов по pymatgen в целом, обратите внимание, что у нас также есть группа Google, у Материала Project также есть форум, и в целом мы стараемся отвечать на запросы (однако я не уверен, что кто-то в настоящее время отслеживает переполнение стека). Вы также можете написать мне напрямую. Если вы нашли ошибку, пожалуйста, сообщите об этом на страницу проблем pymatgen GitHub, и мы постараемся исправить ее как можно скорее.