通过cif文件和空间群国际晶体表, 推演出所有的坐标
步骤1 根据cif文件, 找出每个原子的 x,y,z坐标
以MgF2.cif为例

步骤2 将数据都代入各行循环计算

步骤3 根据不同的类型, 对每个坐标进行平移
MgF2的空间群号, MgF2.cif 可见:

根据55号国际晶体表, 可见:

类型为P时, Site symmetry为空, 即不做任何平移, 直接进行第四步.
经过1, 2步骤, 得到 n(行原子数值) * m(行等效位循环) 个(x, y, z)坐标数据 , 将得到 n * m 的每个坐标数据,平移.
那么, 平移多少?
根据《230个空间群国际晶体表》, 以223号为例

类型为 F 的平移量为(0, 1/2, 1/2), (1/2, 0, 1/2), (1/2, 1/2, 0)
230个空间群, 类型分为: C, P, A, I, R
它们分别的平移量为 C:(1/2, 1/2, 0), P-none, A:(0, 1/2, 1/2), I:(1/2, 1/2, 1/2), R:(2/3, 1/3, 1/3), (1/3, 2/3, 2/3)
[(0, 0, 0)暂时都不看]
步骤4 将得到的坐标进行再次平移, 筛选出合格的点
首先判断, 点的x,y,z坐标是否超出了(0, 1)范围, 对各个坐标进行修正.

然后, 进行以下平移操作: (0, 0 , 0) 偏移量用在这里
(1, 0, 0)
(-1, 0, 0)
(0, 1, 0)
(0, -1, 0)
(0, 0, 1)
(0, 0, -1)
(0, 1, 1)
(1, 0, 1)
(1, 1, 0)
(1, 1, 1)
最后, x, y, z 任一超出了(0, 1) 范围, 此点不要.
至此, 所有坐标全部得到.
以下是我的程序运行的结果:


浙公网安备 33010602011771号