ALAMODE实操:从位移原子力到声子谱
64原子硅实例,串联ALM、displace.py、LAMMPS、extract.py和ANPHON,提供完整输入与实算图。
阅读本篇目录
ALAMODE用于拟合原子间力常数、计算声子及相关热学性质。入门时先把谐波流程走通:生成位移 → 计算原子力 → 整理位移—力数据 → 拟合二阶力常数 → 计算色散、DOS和振动热力学。
1 本例采用什么模型#
使用金刚石结构Si的2×2×2常规胞超胞,共64个原子,常规胞晶格常数5.43 Å。原子力由集群LAMMPS 30Sep2026的Stillinger–Weber势实际计算,P100与V100 16G完成相同结构的力对照;ALM和ANPHON使用已部署的ALAMODE 1.5.0。
这是经典势硅模型的操作参考,不是DFT或实验硅的声子数据。之后若替换成VASP等引擎的力,应重新生成、提取和拟合相应数据,不能只给本例结果换标签。

ALAMODE构建采用Intel oneAPI 2024.2的icx/icpx、Intel MPI和MKL LP64,针对AVX-512 CPU。LAMMPS力计算使用Kokkos 5.2.1双精度CUDA 12.8构建。CPU后处理命令在已分配、满足指令集要求的计算环境中执行,资源申请和队列操作可参照作业提交、查询与排错。
2 先完整复跑已有数据#
下载文件保存为alamode-example.zip,解压后执行:
unzip alamode-example.zip -d alamode-example
cd alamode-example
bash run.sh
默认入口使用包内真实GPU原子力,重新运行原生alm suggest、displace.py、extract.py、谐波拟合和ANPHON,再做独立检查与绘图。它不提交新GPU任务,默认使用一个CPU线程;需要新目录,已有results时退出以保护原结果。
ls results/fit/u010
ls figures
head results/fit/u010/si_band.bands
u005、u010、u020分别对应0.005、0.01、0.02 Å的位移幅度。分析使用现有ASE Python中的NumPy、ASE和Matplotlib;可通过ANALYSISPY指定自己的兼容环境。
3 如需重新计算GPU原子力#
在资料包根目录建立独立P100工作副本:
python new-case.py p100
cd work/p100
sbatch run.sh
V100示例使用python new-case.py v100。提交脚本已包含匹配的LAMMPS模块、GPU资源和Kokkos参数,需具备对应资源权限。它计算的是位移结构的静态原子力,run 0不产生MD采样。
GPU作业结束后,回到资料包根目录执行:
bash run-new.sh
入口把work/p100及可选work/v100的新原子力接入独立new-workflow,重新拟合并生成new-workflow/results和new-workflow/figures;包内原始参考数据与原results保留。只重算P100时,V100仍使用资料包提供的相同结构参考力。若修改材料或结构,应同步准备匹配的ALM结构与位移输入。
本例共有19个静态力条件:P100上的参考、正负位移、小随机留出和均匀子晶格位移,以及V100上的相同结构对照。它们组成一个谐波工作流,不是19种不同科学方法。
4 各工具负责哪一步#
| 工具或文件 | 作用 |
|---|---|
alm,MODE=suggest |
根据结构和对称性产生必要位移图样 |
displace.py |
将方向和选定幅度写成具体结构 |
LAMMPS run 0 |
对位移结构计算真实原子力 |
extract.py |
提取位移和力,转换成ALM所需单位 |
alm,MODE=optimize |
从位移—力数据拟合力常数 |
si64.xml |
将结构及力常数传给ANPHON |
anphon |
计算声子色散、DOS和本例振动热力学 |
本例的原生ALM对称性分析给出一个谐波位移图样,利用晶体对称性减少了显式位移数量。实际执行的单步命令、完整输入与数据单位见位移和力常数实操。
5 最后得到什么结果#

超胞有64个原子,完整Hessian为192×192;ANPHON使用2原子的Si原胞,所以色散图为6条分支。三个位移幅度给出的曲线接近,0.01 Å分支在Γ点的光学频率约595.0735 cm⁻¹。
这是所选经典势、体积和质量下的结果。它不直接代表实验硅,也不能仅凭这条路径证明任意结构或温度下都稳定。DOS积分与独立检查、输出单位和热容提取见色散、DOS与热力学。
本组完成谐波入门流程;三阶/四阶拟合、自洽声子和声子散射需要相应的高阶力常数和额外计算,不能由一份二阶XML直接得到。
参考:ALAMODE运行流程、官方Si实例。
继续学习三阶与四阶力常数#
用同一个Si64经典SW模型,继续看高阶力常数拟合和三折分组与独立留出。提供实际原子力、终端脚本、三阶四阶模型对照及新计算结果接入方法。高阶力拟合与SCPH、RTA是不同步骤,后两者需要各自计算。