XRD作图说明

有标准卡片:双Y轴图

测试案例

首先进入一个新目录,然后拷贝测试文件:

1
cp ../atat/examples/cuau.in lat.in

Maps开始运行:

1
maps -d &

现在Maps已经开始运行,等待下一步的指令,输入命令开始生成结构:

1
touch ready

大概在10s内,Maps会回应:replies Finding best structure...,此时可以输入:

1
ls */wait

查看进入,返回0说明完事了,0目录里包含str.out文件,它描述了需要计算能量的结构,比如:

1
2
3
4
5
6
7
8
(base) storm@cernet2:~/test/0$ cat str.out 
3.800000 0.000000 0.000000
0.000000 3.800000 0.000000
0.000000 0.000000 3.800000
0.500000 0.000000 0.500000
0.500000 0.500000 0.000000
-0.000000 0.500000 0.500000
1.000000 1.000000 1.000000 Cu

The cluster expansion enables the prediction of the energy of any configuration from the knowledge of the energies of a small number of configurations (typically between 30 and 50), thus making the procedure amenable to the use of first-principles methods.

输入文件

maps需要两种输入文件:

  • lat.in,指定父(母)晶格的文件
  • xxxx.wrap,提供第一性原理计算程序如vasp的输入参数

先看一下六方最密堆积的钛-铝合金系统的lat.in

1
2
3
4
5
6
3.1 3.1 5.062 90 90 120 
1 0 0
0 1 0
0 0 1
0 0 0 Al,Ti
0.6666666 0.3333333 0.5 Al,Ti

这个lat.inPOSCAR有些相似,从上到下依次为:

  • 晶胞参数: a,b,c,α,β,γ
  • 原胞x方向上的基矢
  • 原胞y方向上的基矢
  • 原胞z方向上的基矢
  • Al原子的坐标
  • Ti原子的坐标

再看一下另一个例子:

1
2
3
4
5
6
4.1 4.1 4.1 90 90 90
0 0.5 0.5
0.5 0 0.5
0.5 0.5 0
0 0 0 Ca,Mg
0.5 0.5 0.5 O

回顾一下晶胞基矢的概念,比如下面这个图就是面心立方晶胞的原胞

使用第一性原理程序团簇展开的过程可以概括为:

  • 确定参数
  • maps开始团簇展开
  • 判断团簇展开是否足够精确

使用touch ready命令,程序会在十秒内返回:

1
2
Finding best structure...
done!

maps会创建0目录,目录内有str.out文件,记录着两个pure structures

1
2
3
4
5
6
7
8
(base) [storm@X16 0]$ cat str.out
3.800000 0.000000 0.000000
0.000000 3.800000 0.000000
0.000000 0.000000 3.800000
0.500000 0.000000 0.500000
0.500000 0.500000 0.000000
-0.000000 0.500000 0.500000
1.000000 1.000000 1.000000 Cu

运行runstruct_vasp程序会调用vasp自动进行计算并输出能量:

1
2
(base) [storm@X16 0]$ cat energy
-.37351754E+01

如果觉得精度不够不符合要求,可以编辑目录下的xxxx.wrap文件,比如我用的第一性原理程序是vasp,那么就修改vasp.wrap,着重修改KPPRA(k-point density)或者平面波的截断能参数,然后回到0目录再次计算,直到精度足够即能量在期望的精度范围内对输入参数的变化变得不敏感

使用命令:

1
pollmach runstruct_xxxx

可以自动计算,它会启动作业管理器,该管理器将监控本地工作站网络上的负载,并在处理器可用时要求映射生成新的结构(即原子排列)。第一次运行该命令时,屏幕上会出现说明,解释如何根据本地计算环境配置作业调度系统。完成此配置后,应在后台通过向上面的命令附加“&”来调用它。

1
touch stop
1
touch stoppol1