Critic2专题

Critic2 振动文件与力常数格式

实操Phonopy全量与紧凑力常数、显式超胞、ASR、频率YAML和独立存储清理。

更新于 2026-10-30约 6 分钟阅读按任务与环境选择适用配置
阅读本篇目录

FORCE_CONSTANTS保存原子之间的二阶力常数;Phonopy的 qpoints.yaml保存已经计算好的q点、频率和本征向量。两类文件包含的信息不同,应使用对应的Critic2入口。

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拟合。原胞2Si、超胞16Si,数据单位eV/Ų;CALCULATOR VASP只选择单位,不改变其NEP来源。data/qpoints.yaml由Phonopy4.8.1真实计算生成,包含4个q点,每点6个模式。

实际结构、原子映射与文件流向

2. 读取和导出全量、紧凑FC2#

bash run.sh 1
head -n 6 work/fc2-roundtrip/full.FC2
head -n 6 work/fc2-roundtrip/compact.FC2

本例原始全量文件前6行:

  16   16
1 1
    12.902759897006675     0.000000000000000     0.000000000000000
     0.000000000000000    12.902759897006687     0.000000000000000
     0.000000000000000     0.000000000000000    12.902759897006682
1 2

第一行 16 16表示16×16组原子对,每组随后是原子编号及3×3笛卡尔力常数矩阵。紧凑格式第一行 2 16只显式存储原胞代表原子的行;其余超胞行由平移关系恢复,不能随便删去全量文件的后14行来制造紧凑文件。

对应的原生命令:

vibrations write_fc2 full.FC2 full
vibrations write_fc2 compact.FC2

本例导出的原子对矩阵与输入在相同eV/Ų单位下逐项一致到数值输出精度。读取Phonopy实际紧凑文件:

bash run.sh 4
cat work/fc2-compact/points.dat
crystal ../../data/unit.vasp
vibrations calculator vasp
vibrations load_fc2 ../../data/FORCE_CONSTANTS.compact 2 2 2
vibrations calcq file points.dat
q 0 0 0
q .5 .5 0
q .5 .5 .5
q .13 .27 .31
ENDCALCQ

紧凑文件必须保持正确的代表原子编号和超胞列顺序。单独的力常数文件不包含完整结构,因此不能用 VIBRATIONS LOAD FORCE_CONSTANTS替代 LOAD_FC2。

3. 用显式超胞匹配原子顺序#

bash run.sh 3
cat work/fc2-supercell/points.dat
crystal ../../data/unit.vasp
vibrations calculator vasp
vibrations load_fc2 ../../data/FORCE_CONSTANTS ../../data/supercell.vasp
vibrations calcq file points.dat
q 0 0 0
q .5 .5 0
q .5 .5 .5
q .13 .27 .31
ENDCALCQ

这里用 supercell.vasp代替 2 2 2自动构造,让结构映射使用显式超胞。实际全量、紧凑和显式超胞三条路径给出相同的四q点频率;若自己的数据不一致,先查结构、坐标系、原子编号和单位,不要仅调整画图标签。

4. 显式施加声学和规则#

bash run.sh 2
cat work/fc2-asr/points.dat
crystal ../../data/unit.vasp
vibrations calculator vasp
vibrations load_fc2 ../../data/FORCE_CONSTANTS 2 2 2 ASR
vibrations calcq file points.dat
q 0 0 0
q .5 .5 0
q .5 .5 .5
q .13 .27 .31
ENDCALCQ

ASR施加平移声学和规则。本例拟合数据原本已接近满足,原生相对偏差约7.3×10⁻¹⁶,因此加ASR前后频率基本相同。ASR不是消除所有虚频的工具,也不能修复错位的原子映射或不充分的力数据。

5. 读取已有Phonopy频率YAML#

bash run.sh 12
cat work/phonopy-yaml/out.cro
crystal ../../data/unit.vasp
vibrations load ../../data/qpoints.yaml
vibrations print summary

原生摘要显示4个q点、每点6个频率,并明确 Second-order force constants NOT available。这不是错误:本文件只提供这些已经计算的模式。仅有频率YAML时,不能据此请求新的q点插值或 THERMO MESH;需要重新读入FC2。

phonopy_params.yaml属于结构与计算参数描述,也不能仅因扩展名相同就替代带频率/本征向量的 qpoints.yaml。

6. 分别清理频率与FC2#

bash run.sh 13
cat work/clear-reload/gamma-thermo.dat

完整实际输入:

crystal ../../data/unit.vasp
vibrations calculator vasp
vibrations load_fc2 ../../data/FORCE_CONSTANTS 2 2 2
vibrations calcq file points.dat
q 0 0 0
q .5 .5 0
q .5 .5 .5
q .13 .27 .31
ENDCALCQ
vibrations clear freq
vibrations print summary
vibrations calcq 0 0 0 file gamma.dat
vibrations clear fc2
vibrations thermo temperatures 0 300 1000 noxdebye file gamma-thermo.dat
vibrations clear
vibrations print summary

CLEAR FREQ只删除已计算的模式,保留FC2,因此随后仍可 CALCQ。CLEAR FC2删除力常数,保留已计算的Γ点模式,所以还能计算Γ点的热力学;其晶体适用边界见声子态密度与振动热力学。不带参数的 CLEAR全部清空。

bash analyze.sh
ls figures-reference

只分析附带结果与完整重算 bash run-all.sh各自使用独立输出目录,避免把旧图误当成新输入的结果。更多结构与输入说明可参看Critic2官方仓库。

只分析附带结果时,检查表在 analysis-reference/CHECKS.json,图片在 figures-reference/;完整重算分别写入 analysis/ 和 figures/。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗