ALAMODE有效二阶力常数:导出与复算
用原生dfc2将SCPH修正导出为温度相关XML,再用anphon复算声子色散并核对。
阅读本篇目录
SCPH计算除了输出色散,还会写出 scph.scph_dfc2。如果希望得到某个温度下、可以继续交给ANPHON使用的有效二阶力常数,可调用ALAMODE自带的 dfc2。
本页使用自洽声子实例的固定体积SiSW模型,实际导出0、300、600K三份有效FC2,并逐一复算色散。
1. 准备好前置文件#
完整附件的 bash run.sh会自动完成本页流程。查看文件:
ls model-ifcs.xml
ls cases/quantum-q4/ifcs.xml
ls cases/quantum-q4/scph.scph_dfc2
原始XML、SCPH修正和温度必须对应同一个模型。不要把其他材料或晶胞的修正文件与当前XML混用。
2. 导出一个温度的有效XML#
在已分配的CPU环境中,进入对应SCPH目录执行:
module load alamode/1.5.0
cd cases/quantum-q4
dfc2 ifcs.xml effective300.xml scph.scph_dfc2 300
ls -lh effective300.xml
四个参数依次是:原始XML、新XML、SCPH修正文件、目标温度K。使用不同的输出名保留原文件。附件里自动生成的版本位于 effective-fc2/quantum-q4-300/effective.xml。
这是ALAMODE的XML格式,可用 anphon继续读取;它不会因为改名就变成Phonopy的 FORCE_CONSTANTS或其他软件的原生格式。
3. 用普通声子模式复算#
为新XML准备一个普通声子输入。附件实际复算输入如下:
&general
PREFIX = effective
MODE = phonons
NKD = 1; KD = Si
MASS = 28.0855
FCSXML = effective.xml
/
&cell
10.2612128632945208
0 0.5 0.5
0.5 0 0.5
0.5 0.5 0
/
&kpoint
1
G 0 0 0 X 0.5 0.5 0 51
X 0.5 0.5 0 L 0.5 0.5 0.5 51
L 0.5 0.5 0.5 G 0 0 0 51
/
若按上一步在SCPH目录手工生成了 effective300.xml,将输入中的 FCSXML改为该文件名,保存为 effective300.in,再执行:
nano effective300.in
anphon effective300.in > effective300.log
ls *.bands
这样得到的是有效FC2对应的声子谱。它应与相同温度的SCPH谱接近;不是再进行一次原子力计算。

4. 本例实际核对了什么#
0、300、600K有效XML分别用 MODE=phonons复算,再与对应SCPH路径上的全部六支频率比较。原生文件输出精度下,最大差异为:
| 来源 | 温度 / K | 全路径最大频率差 / cm⁻¹ |
|---|---|---|
| 量子4³ | 0 | 1.10714e-05 |
| 量子4³ | 300 | 7.14139e-06 |
| 量子4³ | 600 | 7.22005e-06 |
| 关闭四阶控制 | 300 | 9.54662e-06 |
附件还提供一份只将复制文件中完整 ANHARM4条目置零的控制。其SCPH结果返回谐波基线,原始 model-ifcs.xml不被覆盖;这是检查修正来源的控制计算,不是另一种材料。
python effective_fc2.py
python analyze.py
cat analysis/SUMMARY.json
上述两条Python命令是完整脚本的一部分,分步复现时在新目录按前篇顺序执行。已有 effective-fc2/会被保留,重复全流程请重新解压。
5. 继续做热输运时如何衔接#
有效FC2描述当前近似下的温度相关谐波部分。三声子散射还需要FC3及相应积分设置;仅导出有效XML不会自动生成寿命或热导率。
本专题的RTA热导率实例以高阶XML原有FC2、FC3为起点,单独给出操作与数据。使用温度重整化FC2进行后续组合计算时,需要有意识地准备并传递匹配的文件。
原生工具用法亦可在ALAMODE安装目录的工具说明中查看。SCPH与ANPHON参数