ATAT体模量实操:五个晶胞到VASP能量
用calcbulk自动缩放FCC铝,提交真实VASP计算并提取五个能量点。
阅读本篇目录
本篇用calcbulk完成“缩放晶胞→调用VASP→提取能量→拟合体模量”的全过程。下载完整实例包。Al采用一个原子的FCC原胞,不在每个体积点重新优化原子或晶胞;这是固定结构的五点能量扫描。
1 解压并查看输入#
mkdir ATAT-Al-bulk
python3 -m zipfile -e atat-Al-calcbulk-*.zip ATAT-Al-bulk
cd ATAT-Al-bulk
cat inputs/str.out
初始结构完整内容为:
4.04 4.04 4.04 90 90 90
0 0.5 0.5
0.5 0 0.5
0.5 0.5 0
0 0 0 Al
常规立方晶格参数为4.04 Å,所用原胞体积是a³/4。同一种Al赝势、同一个k点网格和截断能用于全部五个点。
cat inputs/vasp.wrap
vasp.wrap的[INCAR]段向VASP传递下列完整控制参数:
SYSTEM=Al PBE calcbulk fixed FCC example
ENCUT=500
PREC=Accurate
EDIFF=1e-6
ISMEAR=1
SIGMA=0.1
ISPIN=1
ISYM=0
NSW=0
IBRION=-1
ALGO=Normal
NELM=100
LREAL=.FALSE.
LASPH=.TRUE.
LWAVE=.FALSE.
LCHARG=.FALSE.
NEDOS=1001
另外,KPPRA=512、KSCHEME=GAMMA和USEPOT=PAWPBE由ATAT处理,生成的KPOINTS为:
KPOINTS file
0
GAMMA
8 8 8
0 0 0
EDIFF=1e-6控制电子收敛;NSW=0与IBRION=-1表示每个点只计算能量。这里没有开启ISIF=3做自由晶胞优化,体积是由外层calcbulk按指定应变设置的。金属展宽为ISMEAR=1、SIGMA=0.1;开展定量研究仍需检查k点、截断能和展宽。
2 一条命令提交五点扫描#
bash run.sh
命令提交一个Slurm作业并等待完成,显示真实作业号;排队时不要重复启动。先沿用自己已经初始化的ATAT/VASP环境,赝势从集群现有路径读取,实例包不含POTCAR。
本例调用已有atat-vasp的CPU版VASP6.4.2两进程入口。已实际运行的脚本分配V10016G分区资源和一张卡,但所调用的可执行程序在CPU上运行;这个例子用于ATAT接口操作,不作为GPU加速测试。资源申请按账号现有权限和计费规则执行。若改用可用CPU分区,需要同时调整分区与GPU资源请求。
ATAT版本3.52,基于GCC13.3;atat-vasp包装器载入oneAPI2024.2和IntelMPI运行环境。五点扫描的核心命令是:
calcbulk -0.02 0.02 0.01 <本例的VASP计算程序>
依次表示最小线性应变−0.02、最大+0.02、步长0.01。因此得到−2%、−1%、0%、+1%、+2%五个点。这是长度应变,不是体积变化百分数,每个方向都缩放后,体积按(1+s)³变化。
每个点内执行runstruct_vasp -nr准备输入→atat-vasp实际SCF→runstruct_vasp -ex提取结果。初始晶胞和VASP参数都可以在包内查看;不要把不同赝势或参数的能量直接放入同一拟合。

3 看实际生成的VASP输入与结果#
cat new-work/s_0/POSCAR
cat new-work/s_0/INCAR
cat new-work/s_0/KPOINTS
cat new-work/analysis/EOS.csv
实际零应变点的POSCAR为:
title
1.
0.000000000 2.019998000 2.019998000
2.019998000 0.000000000 2.019998000
2.019998000 2.019998000 0.000000000
1
Cartesian
0.000000000 0.000000000 0.000000000 Al
该文件由工具连续缩放产生,末位保留工具输出的舍入。计算体积时以实际晶胞向量的行列式为准,不从OUTCAR中只有两位小数的显示值重新拟合。
结束后,new-work/s_*保留五点原生输入输出,顶层有bulkmod、strain.out、energy和str_relax.out。analysis/EOS.csv整理应变、实际原胞体积与能量。接着阅读体模量结果与拟合图。