Gibbs2 声子DOS与准谐热力学
准备多个体积的声子DOS,声明频率单位和文件列,得到准谐振动自由能与热容。
阅读本篇目录
下载Gibbs2实操包。解压后进入包目录;完整输入、原始数据、提取脚本与高清图随包提供。本专题使用1.0.68固定源码版本、GNU Fortran13.3构建的双精度串行CPU入口,配套Python/Matplotlib与Gnuplot处理结果。每个流程从新的目录开始。
1. 先在每个体积算声子#
保持化学式、电子结构设置和声子归一一致;每个体积要有E(V)和对应声子DOS。可由Phonopy或电子结构程序产生,文件应整理成频率与DOS两列,必要时用DOSFIELD指定其他列。不要把只有一个体积的DOS复制到所有体积后就称为完整体积依赖。
运行与查看#
在已分配的CPU资源内,从包根目录执行:
module load gibbs2/1.0.68
bash run.sh official-thermal-MgO
bash run.sh thermal-control-qha-debye-spectrum
ls work/official-thermal-MgO
tail -n 12 work/official-thermal-MgO/stdout.log
程序每次1个串行进程;不需要GPU或mpirun。原始输入、.eos_static、.eos与.efit按条件隔离保存。
实际MgO输入中的QHA行如下;完整四模型文件见Debye教程与包内原件:
phase qha file ../../data/upstream/mgo_pbe/mgo.res tmodel qha \
units energy ry freq cm-1 prefix ../../data/upstream/mgo_pbe/
head -n 8 data/upstream/mgo_pbe/mgo.res
head -n 8 data/upstream/mgo_pbe/001_/001_.phdos
.res每行的前两列是V与E,第三列是该体积声子DOS文件名;PREFIX用于补齐文件路径。频率单位是cm⁻¹,能量是Ry,体积默认bohr³。
2. 归一、频率步长与虚频#
DOS应对应同一单位的3Nat个振动模式。当前程序会检查并按设置处理归一;set norenormalize只适用于你已确认归一的输入。fstep控制频率插值步长,实际例在language-inputs/phonon-frequency-step/。若存在显著虚频,先处理结构/动力学稳定性,不用ACTIVATE掩盖物理问题。
3. 有限频率网格的实际对照#
控制例用已知Debye连续谱离散成1001点,另用独立积分和externalfvib作比较。它是有解析答案的谱控制,不是额外DFT。
inputs/thermal-control-qha-debye-spectrum/in.ing的运行输入:
root result
mm 56.171
nat 2
pressure 0 5 20
temperature
0 100 200 300 500 800
endtemperature
set notrans
phase model file ../../data/analytic-thermal/qha.dat tmodel qha prefix ../../data/analytic-thermal fit strain bm 3 units freq ha
end
当前同一控制中,QHA有限DOS网格的最大Cv差约0.00744 J/mol/K;其他Debye/外部函数控制约0.00499。程序保留自己的有限拟合方式,因此不宣称所有点逐位相等,更不把这个差异当作真实材料误差。QHA与QHAFULL是本例验证相同的入口别名。

左为实际上游MgO声子输入,右为明确标注的解析谱控制。

原生热容与独立解析函数的实际小差异保留显示。
从原始结果重新提取、画图#
若想先看配套数据,在另一份新解压目录执行:
bash analyze.sh
ls analysis-reference
ls figures-reference
它读取 reference/ 原始输出,重新提取表格并生成16张高清图。完整重算时,在新目录运行 bash run-all.sh,最终数据在 analysis/、图片在 figures/。同名结果目录已存在时会受到保护;只算一个条件时,不要调用需要全部条件的整包分析。
相关入口:Gibbs2专题、固定版本源码与手册。以本专题对应的集群版本与输入为准;有限体积、温压和频率网格是操作示例,真实材料计算需要检查相应收敛范围。