Gibbs2 导入外部振动热力学
把已有各体积各温度的Fvib、S和Cv交给Gibbs2,保持单位和体积列表一致。
阅读本篇目录
下载Gibbs2实操包。解压后进入包目录;完整输入、原始数据、提取脚本与高清图随包提供。本专题使用1.0.68固定源码版本、GNU Fortran13.3构建的双精度串行CPU入口,配套Python/Matplotlib与Gnuplot处理结果。每个流程从新的目录开始。
1. 需要两个层次的文件#
一个列表写温度和数据文件名;每个温度文件包含4列:V(bohr³)、Fvib(Ha)、Svib(Ha/K)、Cv(Ha/K)。当前入口需要F/S/Cv,不能只给V与F两列。各温度的体积点必须与静态曲线一致。
运行与查看#
在已分配的CPU资源内,从包根目录执行:
module load gibbs2/1.0.68
bash run.sh official-external-Fvib
bash run.sh thermal-control-external-debye
ls work/official-external-Fvib
tail -n 12 work/official-external-Fvib/stdout.log
程序每次1个串行进程;不需要GPU或mpirun。原始输入、.eos_static、.eos与.efit按条件隔离保存。
inputs/official-external-Fvib/in.ing的运行输入:
root 002_externalfvib
set notrans
mm 40.3044
vfree 2
pressure 0 1 250
phase mgo file ../../data/upstream/externalfvib_mgo/mgo.res tmodel externalfvib ../../data/upstream/externalfvib_mgo/list.gvt \
prefix ../../data/upstream/externalfvib_mgo
end
0.00 F_0.txt
300.00 F_300.txt
head -n 8 data/upstream/externalfvib_mgo/F_300.txt
head -n 12 work/official-external-Fvib/002_externalfvib.eos
本输入的外部温度表只有0与300 K,程序按该表工作;它会覆盖另一份用户温度列表。因此先确认输入的温度集合,不从输出的两个温度点推断整个连续温区。
2. 实际MgO输出#
P=0、300 K时,V=132.3933 bohr³、Fvib=9.916540 kJ/mol、Cv=38.22589 J/mol/K。输出从输入的原子单位转换为摩尔单位,不能再手工重复乘一次Nat。
3. 独立函数控制#
控制例直接由解析Debye积分生成F/S/Cv,随后真正写文件并交给原生externalfvib;它与给定ThetaD模型共享同一套体积与函数,因此可用于理解数据流。
inputs/thermal-control-external-debye/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/plain.dat tmodel externalfvib ../../data/analytic-thermal/external-list.gvt prefix ../../data/analytic-thermal fit strain bm 3
end
cat data/analytic-thermal/external-list.gvt
head -n 5 data/analytic-thermal/external-300.dat

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