ATAT并行枚举:mpigenstr与串行结果对照
并行生成FCC二元两原子以内的四个结构,并核对空间群和实际几何。
阅读本篇目录
接着MPI任务分发教程操作,当前目录应为ATAT-MPI且已完成bash run.sh。完整实例包。同一个作业还比较了原生串行genstr和包装器atat-mpigenstr。
1 查看母晶格和枚举参数#
cat new-work/lat.in
grep -c '^end$' new-work/genstr-serial.log new-work/genstr-MPI.log
母晶格完整内容为:
3.6 3.6 3.6 90 90 90
0 0.5 0.5
0.5 0 0.5
0.5 0.5 0
0 0 0 Cu,Au
Cu,Au表示该FCC格点允许两种元素占位。作业内已实际执行:
genstr -n=2 -sig=8 -l=lat.in
atat-mpigenstr -n=2 -sig=8 -l=lat.in
这里-n=2表示枚举晶胞最多两个原子,不是生成两个结构。-sig=8设置输出精度,-l指定母晶格。两种调用都生成四个结构,每个结构后有一行end。
2 理解这四个结构#
head -30 new-work/genstr-MPI.log
bash plot.sh
ls -lh new-work/figures/*.png

分别为纯Cu、纯Au,以及1:1组分的L1₀和L1₁两种有序占位。独立空间群识别得到225、225、123、166。纯元素只需要一个原子原胞;二元有序结构需要两个原子表示其化学占位。
这些是母晶格上对称不等价的构型,不是已经做过能量比较的稳定相。图中使用同一个给定晶格参数,不代表Cu、Au及有序合金具有相同的平衡晶格常数。
3 怎样比较串行与并行输出#
cat new-work/RESULT.json
流程按end拆开结构、排序后逐项比较原生文本,并读取晶胞/原子坐标做空间群检查。并行程序可能改变输出顺序,因此比较时应按完整结构分组;不能只对整份文件逐行比较后,就把顺序变化当成结构缺失。
前一篇有六个EMT能量工作项,本篇有四个枚举结构,这是两件不同的事。这里没有给四个枚举结构算出混合焓或相稳定性;要继续做簇展开,需要为它们准备一致的能量计算,并增加足够的训练和验证构型。
atat-mpigenstr和其他MPI包装器需要真正的Slurm资源分配,不要在登录终端手工伪造SLURM_JOB_ID。本例不启动mpimmaps自动拟合主控;该流程需要另外配置结构能量反馈与停止恢复方式。
需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。