Critic2 力常数与声子色散
读取实际Si力常数,保持超胞原子序和单位,计算Gamma到X再到L的声子路径。
阅读本篇目录
已有 FORCE_CONSTANTS 时,可以用Critic2继续计算声子频率和色散。顺序是:准备与力常数相匹配的原胞与超胞,说明力常数单位,计算q点或路径,最后读取频率并画图。
1. 准备结构与力常数#
下载声子与振动热力学实例包,在已分配的CPU资源中解压:
unzip critic2-vibrations-wave145-*.zip -d critic2-vibrations
cd critic2-vibrations
bash run.sh list
本例使用 critic2/1.4(内部1.4.155,GCC/GFortran13.3、OpenMP、LAPACK3.12.1/BLAS);对照与绘图使用 phono3py/4.8.2 的独立Python3.11.16环境,其中Phonopy为4.8.1。全部使用1个CPU线程,无需GPU。
本包采用实际NEP求力与symfc拟合实例中的 Si16-fc2-c4p2 数据。它来自真实NEP力标签及symfc拟合,不是DFT或VASP力计算。data/PROVENANCE.json记录来源和原始哈希;本节直接从已有力常数开始,不重新求力。
原胞含2个Si,超胞矩阵为 2 2 2,超胞共16个Si;Si质量为28.0855 amu。实际原胞文件 data/unit.vasp:
generated by phonopy
1.0
0.0000000000000000 2.7149999999999999 2.7149999999999999
2.7149999999999999 0.0000000000000000 2.7149999999999999
2.7149999999999999 2.7149999999999999 0.0000000000000000
Si
2
Direct
0.0000000000000000 0.0000000000000000 0.0000000000000000
0.2500000000000000 0.2500000000000000 0.2500000000000000
data/supercell.vasp和FORCE_CONSTANTS必须使用匹配的原子顺序。仅把另一份看起来相同的超胞放进来,不能保证力常数行列仍对应相同原子。

2. 先计算四个q点#
bash run.sh 1
head -n 10 work/fc2-roundtrip/points.dat
完整实际输入:
crystal ../../data/unit.vasp
vibrations calculator vasp
vibrations load_fc2 ../../data/FORCE_CONSTANTS 2 2 2
vibrations print summary
vibrations write_fc2 full.FC2 full
vibrations write_fc2 compact.FC2
vibrations calcq file points.dat
q 0 0 0
q .5 .5 0
q .5 .5 .5
q .13 .27 .31
ENDCALCQ
CRYSTAL读取原胞。这里 CALCULATOR VASP只选择 eV/Ų 的力常数单位约定,不代表这些数据由VASP产生;Critic2内部会进行单位换算。LOAD_FC2后面的 2 2 2说明力常数对应的超胞矩阵。
CALCQ列表中的q为原胞倒易基矢下的分数坐标,以 ENDCALCQ结束。输出表第1列为沿当前列表累计的倒空间距离(bohr⁻¹),第2–4列为q坐标,第5–10列是6个模式的频率(cm⁻¹)。
实际结果:
| q点 | 6个频率 / cm⁻¹ |
|---|---|
| Γ=(0,0,0) | −0.000011,−0.000010,−0.000006,486.982177,486.982177,486.982177 |
| X=(0.5,0.5,0) | 141.203789,141.203789,392.407859,392.407859,455.208396,455.208396 |
| L=(0.5,0.5,0.5) | 109.844289,109.844289,322.628404,415.679492,473.581751,473.581751 |
乘 0.0299792458可从cm⁻¹换成THz。这里Γ点约10⁻⁵cm⁻¹的声学小负值属于数值零附近的误差尺度;明显负频应回到结构、力精度、拟合、超胞和截断范围检查,不能一律删除。
3. 连续计算Γ–X–Γ–L#
bash run.sh 5
head -n 8 work/band-lines/bands.dat
crystal ../../data/unit.vasp
vibrations calculator vasp
vibrations load_fc2 ../../data/FORCE_CONSTANTS 2 2 2
vibrations calcq file bands.dat
line 0 0 0 .5 .5 0 41
line .5 .5 0 0 0 0 41
line 0 0 0 .5 .5 .5 41
ENDCALCQ
每个 LINE最后的 41是该段包含两端点的采样数,共3段×41=123行。相邻段公共端点会重复;本包绘图保持原生顺序和实际距离。
只用附带数据生成图:
bash analyze.sh
ls figures-reference
需要重新执行全部13个短条件时,在新解压目录中运行:
bash run-all.sh
这会重新调用Critic2,再以Phonopy和独立Fourier构造核对频率、作热力学求和并绘图。它不会重新调用NEP或电子结构程序求力。实际带路径的Critic2与Phonopy频率差在约6×10⁻⁵cm⁻¹以内,图中保留这个数值差异。

4. 在自己的体系上替换哪些文件#
先取得可信的结构与二阶力常数,再一起替换 unit.vasp、对应超胞与 FORCE_CONSTANTS,修改 LOAD_FC2超胞矩阵和q路径。路径必须基于自己的原胞定义,不能直接把本例Si路径当作所有材料的通用路径。
本例是有限Si16超胞、有限截断的NEP模型操作参考,没有证明材料声子已对超胞、拟合截断或势模型收敛;极性材料的长程非解析修正也不能由本例自动补齐。
只分析附带结果时,检查表在 analysis-reference/CHECKS.json,图片在 figures-reference/;完整重算分别写入 analysis/ 和 figures/。
实际求力到力常数#
固定Si16真实QE单点求力、原生有限/随机配对FC2与Phonopy/Symfc对照。QE导出的FC2按Ry/bohr²理解;finite reader扣除单帧整体力漂移,但不自动扣未位移参考。随机正负顺序1/3、2/4,少量数据显式NORIDGE或RIDGE;自动CV需要更多配对数据。