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