0

我正在使用 pymatgen 编写 .mcif 文件。我的结构总是沿 z 具有大小为 4 的共线磁矩,但在将它们写入文件之前,我注意到 pymatgen 使用函数 Magmom.get_moment_relative_to_crystal_axes() 转换它们。我的问题是:

  • 这个函数到底是做什么的?
  • 为什么对于某些晶格,我的磁矩保持 (0, 0, 4),而对于另一些晶格,我得到三个非零分量,甚至幅度不再等于 4?
4

1 回答 1

0

我实际上负责该代码,所以我希望我能回答你的问题:)

简而言之,有几点需要牢记:

• 假设当您说“始终沿 z 的共线磁矩”时,您的意思是这些是标量共线矩,例如来自 DFT 计算,值得牢记的是,当前的 .mcif 标准并非真正设计用于表示标量矩,即为什么我们随意选择z轴。然而,这是按照惯例,没有物理意义。有人告诉我 .mcif 标准的未来版本将支持标量矩。

• 我们通常以晶格矢量的形式呈现相对磁矩,因为这通常更具科学意义。这意味着我们需要从笛卡尔xyz基转换为晶格的abc基。这就是该Magmom.get_moment_relative_to_crystal_axes()方法的作用。

• 合成力矩的大小应该相同;如果不是,这是一个错误(如果您有示例,请分享!)但是,请注意,晶格基可能不是正交的,这会使数学变得有点棘手。

关于一般关于 pymatgen 的提问,请注意我们还有一个 Google 小组,Materials Project 也有一个论坛,而且通常我们会尽量做出响应(但我不确定是否有人目前正​​在监视 stackoverflow)。也非常欢迎您直接给自己发电子邮件。如果您确实发现了错误,请务必将其报告到 pymatgen GitHub 问题页面,我们将尽快修复它。

于 2018-12-17T16:54:15.593 回答