Fourthorder专题

Fourthorder生成四阶位移

从Si原胞生成16原子超胞,理解最近邻截断、48个位移及位移量的单位。

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

下载Si真实结构、受力、力常数、8张图和终端脚本,保存为 si-fourphonon.zip。所有本系列文章使用同一个包:

python3 -m zipfile -e si-fourphonon.zip .
cd fourthorder-fourphonon-silicon-wave288
bash preview.sh
ls preview/figures

包中 reference/ 保存本次实算参考;work/ 是您重新生成的文件,results/data/ 是提取后的CSV。受力来自真实VASP计算;下载包不含POTCAR、波函数、完整电子输出或第三方程序。

1 先分清两个程序#

Fourthorder根据晶体对称性生成有限位移结构,再从DFT受力重构四阶力常数;FourPhonon读取二、三、四阶力常数,计算散射与热导。它们不替代VASP/QE的电子结构计算。上游Fourthorder和FourPhonon分别提供这两段流程。

本例晶格常数5.43 Å、金刚石Si原胞2原子,2×2×2超胞16原子,四阶相互作用先取最近邻,目的是走通操作;正式研究还需检查超胞、截断、电子k网格和声子q网格。

2 准备原胞POSCAR#

Si
 1.0000000000000000
     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

坐标是分数坐标。这个胞不是含8原子的传统立方胞,不能在超胞大小相同的情况下混用两种原胞及其力常数。

3 生成位移#

先用配套工作流建立独立目录,再调用原生工具:

bash prepare.sh
bash reconstruct.sh
ls work/fourthorder/H040/4TH.POSCAR.*
head -n 10 work/fourthorder/H040/4TH.SPOSCAR

reconstruct.sh会实际调用三组Fourthorder sow/reap和Thirdorder sow/reap;这里读取包内已有真实受力,不运行新DFT。

如果您从自己的POSCAR独立开始,原生入口如下:

module load fourthorder/0.1-fix20260618
mkdir my-fourthorder
cp reference/reference/POSCAR-primitive my-fourthorder/POSCAR
cd my-fourthorder
Fourthorder_vasp.py sow 2 2 2 -1
ls 4TH.POSCAR.*

最后的 -1 表示按第一近邻确定截断;正数截断的单位是 nm,不是Å。4TH.SPOSCAR是未位移超胞;4TH.POSCAR.01至.48是48个逻辑位移结构。不要只凭文件名推断原子序号,原胞、超胞和受力的原子排列必须对应。

Si16实际位移与每个原子的位移量

图取本例H=0.04 Å的第一个实际构型;左侧箭头放大14倍,右侧保留真实长度。三次位移可能落在同一原子/方向,因此单个原子的总移动不一定恰好等于H。

4 默认位移量与本例的三组比较#

安装版 Fourthorder_common.py 的H单位为nm,默认 1e-3 nm = 0.01 Å。本例另比较0.02、0.04 Å;对应脚本值分别为0.002、0.004 nm。sow和reap必须使用同一H,否则四阶常数会按H³产生明显错误。

配套脚本只在 work/programs/H010、H020、H040 的私人副本修改H,不改共享安装,也不把第三方源码随包分发。每组48个逻辑位移,共144组;其中部分完全相同的物理构型可严格核对后复用,不能随意用对称结构的受力替换。

5 软件环境#

模块 fourthorder/0.1-fix20260618:Python 3.11、NumPy 1.26.4、SciPy 1.13.1、GCC 13.3、spglib 2.7,采用官方Python3资源和距离修正。版本后缀为集群构建标识,不是上游新发行号。其编译扩展应由配套Python运行,不要把它导入另一套NumPy 2环境。下一步见计算与收集受力。

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

查看配图

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

100%查看原图 ↗