上一期我们介绍了对于格点原子无序的FCC-CoCrCuFeNi高熵合金理论模拟中的建模思想,以及LAMMPS的程序实现。本期文章,我们会详细解读上一期贴出的脚本,以便让读者更深的了解LAMMPS程序的运行过程。
下面就是程序实现过程的详细解读与分析:
units metal #定义单位系统为metal
boundary p p p #定义三个方向都为周期性边界条件
atom_style atomic #定义原子类型为atomic
timestep 0.001 #设定时间步长为1 fs
#构建模型
lattice fcc 3.56 #定义fcc晶格常数
region box block 0 10 0 10 0 10 #定义模拟盒子大小
create_box 5 box #定义模拟盒子中最多可以包含5种原子
label loop #定义脚本循环起始标签为loop
variable a loop 1000 #定义跟踪循环次数变量a为1至1000
log log.$a #定义记录标准输出文件的文件名以次数结尾
create_atoms 1 box #现在模拟盒子中将格点原子用第1种原子Fe代替
set type 1 type/ratio 2 0.2 7603 #将1/5的Fe原子换成第2种原子Ni
set type 1 type/ratio 3 0.5 7603 #将1/2的Fe原子换成第3种原子Cr
set type 1 type/ratio 4 0.5 7603 #将1/2的Fe原子换成第4种原子Co
set type 3 type/ratio 5 0.5 7603 #将1/2的Cr原子换成第5种原子Cu
#注意set进行的是依次操作,这样下来Ni、Cr、Co、Cu各占1/5
#设置原子质量
mass 1 55.8 #Fe
mass 2 58.7 #Ni
mass 3 52 #Cr
mass 4 59 #Co
mass 5 63 #Cu
#设置势函数
pair_style eam/alloy #选用eam合金势
pair_coeff * * FeNiCrCoCu-with-ZBL.eam.alloy Fe Ni Cr Co Cu
#选择文献提供的Fe Ni Cr Co Cu势函数[1]
min_style cg #选用共轭梯度法对模拟盒子进行结构优化
minimize 1.0e-6 1.0e-7 10000 10000
#能量和力的容差为分别为1.0e-6 和1.0e-7,最大迭代次数为10000步
run 0 #启动计算
min_style sd ##选用快速下降法对模拟盒子进行结构优化
minimize 1.0e-6 1.0e-7 10000 10000
run 0
min_style cg
minimize 1.0e-6 1.0e-7 10000 10000
run 0
write_data FeNiCrCoCu_$a.data #写出第a次循环中结构优化的模型
group ALL type 1 2 3 4 5 #将模拟盒子中的原型设为group ALL
delete_atoms group ALL #删除模拟盒子中的所有原子
shell ./mseed.sh #跟换下一轮建模计算的随机随机数
next a #跳到下轮计算的跟中变量符a
jump FeNiCrCoCu.in loop
#跳到FeNiCrCoCu.in loop文件中的label loop开始下一轮计算
在以上LAMMPS脚本中,需要特别注意的是,命令“set type 1 type/ratio 2 0.2 7603”执行的结果与随机数7603有关,相同的随机数通过该命令生成的结果是一样的因此我们在生成下一个模型时需要提前对随机数进行更改。我们的更改方式是通过外部shell脚本mseed.sh进行更改的。调用命令为shell ./mseed.sh。mseed.sh中的内容如下:
#!/bin/bash
a=$RANDOM
sed -i "13c set type 1 type/ratio 2 0.2 $a" FeNiCrCoCu.in
sed -i "14c set type 1 type/ratio 3 0.5 $a" FeNiCrCoCu.in
sed -i "15c set type 1 type/ratio 4 0.5 $a" FeNiCrCoCu.in
sed -i "16c set type 3 type/ratio 5 0.5 $a" FeNiCrCoCu.in
该脚本中,变量RANDOM是Linux shell中的一个特殊变量,每一次对其进行取值都会任意取到0-32767之间的任意整数,且在同一个shell进程取值不会重复,取完为止。后面四行通过sed命令将拿到的随机用来修改FeNiCrCoCu.in文件,这样就可以保证在循环运行FeNiCrCoCu.in脚本时,生成的结构都是不同的。
最后提交任务时只需要在任务文件夹中放入FeNiCrCoCu.in、mseed.sh、FeNiCrCoCu-with-ZBL.eam.alloy用PBS脚本进行提交就可以了。其中FeNiCrCoCu-with-ZBL.eam.alloy为eam势函数文件,该势函数来自于O.R. Deluigi等人的文章[1],势文件可以直接从网上下载[2]。
下一期文章我们将继续介绍脚本运行完成之后的后处理,筛选出最稳定结构的FCC-CoCrCuFeNi高熵合金。
测试狗文库百科