ShengBTE 力常数与单位检查
实际读取Si二三阶文件,核对超胞、Å与nm、张量对称性和DFT来源。
阅读本篇目录
热导程序读入文件成功,并不能证明力常数可靠。开始BTE前,需要先保证参考结构、超胞、原子顺序、单位与声学和规则一致。
1. 先完成DFT力计算#
一般顺序为:优化参考原胞→选择超胞与位移→相同电子参数计算各位移构型的力→收集、消除不应有的漂移→生成FC2/FC3→检查声子与拟合误差→进入BTE。
本例复用本集群已有ABACUS Si16的平衡与38个位移观测,采用较密电子k网格的实际力;三阶力常数用symfc限制在3Å。完整DFT操作见ABACUS二三阶力常数,不是在这里拿经验势力冒充DFT。
2. 二阶文件怎么读#
实际 FORCE_CONSTANTS_2ND 开头:
16 16
1 1
15.048775456071262 -0.000000000000000 0.000000000000000
-0.000000000000000 15.048775456071262 0.000000000000000
0.000000000000000 0.000000000000000 15.048775456071263
1 2
1.009408810944538 -0.000000000000000 0.000000000000000
-0.000000000000000 -0.428632274769600 -0.561998989742155
-0.000000000000000 -0.561998989742154 -0.428632274769601
1 3
-0.428632274769601 0.000000000000000 -0.561998989742155
0.000000000000000 1.009408810944538 -0.000000000000000
-0.561998989742155 0.000000000000000 -0.428632274769601
首行是超胞原子数16;每个原子对块先写两个从1开始的原子编号,随后三行是3×3张量。单位eV/Ų。CONTROL中写2原子原胞、scell(:)=2 2 2,与16原子力常数相配。不要把原胞两个原子的二阶矩阵当作完整超胞矩阵。
3. 三阶文件和长度单位#
实际 FORCE_CONSTANTS_3RD 开头:
26
1
0.0000000000 0.0000000000 0.0000000000
0.0000000000 0.0000000000 0.0000000000
1 1 1
1 1 1 0.0000000000
1 1 2 0.0000000000
1 1 3 0.0000000000
1 2 1 0.0000000000
1 2 2 0.0000000000
1 2 3 33.5093075658
三阶文件含三原子簇、平移向量、原子编号和27个笛卡尔分量。平移向量是Å、三阶张量是eV/ų;CONTROL的 lfactor 则是nm。二者属于不同文件的约定,不要统一乘十或除十。
4. 用工具实际核对#
bash check-inputs.sh
cat FORCE-INPUT-CHECK.json
cat PHONOPY-INPUT-CHECK.json
第一步用hiPhive读回ShengBTE三阶和Phonopy格式二阶,比较完整张量、平移与置换对称性;第二步切到Phonopy4.8.3,用它自己的解析器再次读取二阶文本。程序会核对真实DFT来源文件的哈希与超胞尺寸,不靠手工目测文件行数。
5. 这些检查说明什么#
本例三阶读回与原数组的最大差小于2×10⁻⁸,二阶文本与原数组一致;后续还用Phonopy独立核对各BTE条件的频率。它们确认文件转换和求解器输入衔接,不代替DFT截断、电子k网格、超胞和三阶范围收敛。
若出现明显虚频,先处理结构、电子精度和力常数,不要把负频强行取绝对值继续报热导。Γ点声学模的浮点微小残差与大片显著虚频也要区分。当前有限Si模型的范围见随包 FORCE-DATA-SOURCES.json。
资料包与运行入口#
下载力常数、25组完整输入、实际输出及全部分析画图脚本。解压后先检查输入、重画随包参考:
bash check-inputs.sh
bash analyze.sh
完整重新计算25组BTE后处理,在新解压目录提交:
sbatch run.slurm
只算一个q=6、300K RTA条件用 sbatch single.slurm,可编辑其中的条件名。模板遵守CPU分区整节点56核申请规则;这些小例实际使用1个MPI进程、1个计算线程,旨在学习输入和物理结果。大体系需要另按规模调整并行设置,不能用这些小例作性能推荐。
已经获得CPU计算资源时,可以直接调用 bash run.sh 条件名;不要把普通登录节点当计算节点。整套完成后:
bash analyze.sh work
图片在 work/figures/,数值摘要在 work/analysis/RESULTS.json。单例可直接看其 BTE.* 文件,统一分析需要25组完整结果。脚本不会覆盖已有work目录,重新计算请重新解压。
环境:ShengBTE2.1.0,GCC/GFortran13.3、Open MPI5.0.10、MKL2024.2 GF_LP64 sequential,模块 shengbte/2.1.0-8173m;此构建需要AVX-512 CPU,不能直接放到P100主机的旧CPU上运行。输入检查使用hiPhive1.5和Phonopy4.8.3,脚本分别加载对应环境,无需把所有依赖混装进同一Python。
力常数来自本集群已有的真实ABACUS Si16位移计算,本批只重新求解和分析BTE,没有新做DFT。三阶模型范围3Å,电子参数、超胞和q网格仍有有限性;本专题是操作与数值检查参考,不将结果当作收敛的硅材料热导率或CPU性能数据。