Dysurf:四维动力学结构因子模拟程序
导读:Dysurf 是一个 Fortran 程序,用于模拟非弹性中子散射(INS)和非弹性 X 射线散射(IXS)实验的四维动力学结构因子 S(Q,E)。基于第一性原理的二阶力常数,Dysurf 可精确复现散射光谱,辅助实验设计、布里渊区选择和样品优化,大幅减少束流时间浪费。本文整合了程序论文(CPC 2026)与软件手册的核心内容,涵盖理论基础、四大应用场景、编译安装、输入参数和完整示例。——北京理工大学 · EPFL · 河南理工大学
计算物理 · 软件论文
Comput. Phys. Commun. 327 (2026) 110258 | GNU GPL v3.0
一、前言背景
Dysurf:四维动力学结构因子模拟程序
Dysurf 是一个 Fortran 程序,用于模拟非弹性中子散射(INS)和非弹性 X 射线散射(IXS)实验的四维动力学结构因子 S(Q,E)。
程序基于第一性原理方法得到的二阶力常数,能够精确复现散射实验的测量光谱,帮助实验学家在有限的束流时间内获取高质量数据。
论文发表于 Computer Physics Communications 327 (2026) 110258,作者:李永恒(北京理工大学)、林昌鹏(EPFL)、任琦、刘俊岩、魏斌(河南理工大学)、洪家旺(北京理工大学)。
开源协议:GNU GPL v3.0 | 代码仓库:https://github.com/Dysurf/Dysurf | 在线版本:http://36.138.185.163:5000/
非弹性散射:从基础物理到实验挑战
中子散射:中子质量与原子核同量级,德布罗意波长与原子间距相当,热中子能量范围与凝聚态元激发能标匹配。中子自旋1/2,具有磁矩,可同时探测核散射和磁散射。
X射线散射:光子无质量,通过电磁相互作用探测物质,现代高分辨 IXS 谱仪可探测小样品,得益于高亮度同步辐射光源。
实验痛点:单晶样品对准、散射几何选择、色散识别、数据处理均耗时巨大。束流时间有限(通常约5个工作日),实验学家希望最大化测量效率。
Dysurf 的价值:通过理论光谱模拟,预判最佳布里渊区位置、估算相对强度、指导样品设计,将实验从"盲目尝试"转变为"精准导航"。
程序核心能力:四大应用场景
二维 SQE 切片(2D-SQE):沿特定动量路径的能量-动量色散图,直接对应 INS/IXS 测量。
四维 SQE(4D-SQE):全倒空间四维动力学结构因子,可沿任意方向切片,揭示声子色散拓扑(如嵌套行为)。
热漫散射(TDS):分析 Bragg 峰强度演化和倒空间散射强度重分布,辅助孪晶域识别。
SQE 线切割(Line Cut):恒定 q 或恒定能量扫描,提取声子线宽和峰形,分析非谐效应。
样品设计:基于元素类型自动获取原子质量、散射截面、吸收截面,推荐最佳样品几何参数。
图 1 | Dysurf 程序流程图。展示了从读取输入文件到输出 S(Q,E) 的完整计算流程,包括力常数读取、动力学矩阵构建、声子对角化、散射结构因子计算和仪器分辨率卷积。
二、理论方法:动力学结构因子与声子理论
动力学结构因子 S(Q,E)
动力学结构因子 S(Q,E) 是 INS/IXS 实验的核心可观测量,描述了散射截面作为动量转移 Q 和能量转移 E 的函数。
在单声子散射近似下,S(Q,E) 可表示为声子频率 ω_qν、本征矢 e_qν、散射长度 b_κ 和 Debye-Waller 因子 W_κ 的解析函数。
散射结构因子 F_ν(Q) 综合了原子散射长度、质量、本征矢、位置相位和热振动衰减,决定了每个声子模式的散射强度。
Bose 分布 n_qν(T) 控制声子产生和湮灭过程的热权重,温度 T 通过 MSD 和 Debye-Waller 因子影响绝对强度。
动力学结构因子的一般定义:密度关联函数的傅里叶变换
单声子散射近似下的 S(Q,E):声子产生(δ(E-ω))和湮灭(δ(E+ω))贡献
散射结构因子 F_ν(Q):b_κ 为散射长度,m_κ 为原子质量,e_κ 为声子本征矢,e^{iQ·d_κ} 为位置相位,e^{-W_κ} 为 Debye-Waller 因子
Bose-Einstein 分布:n_qν(T) 控制声子热占据数
Debye-Waller 因子:e^{-2W_κ},W_κ 与均方位移 ⟨u²⟩ 成正比
声子色散与动力学矩阵
动力学矩阵 D(q) 由二阶力常数 Φ 的傅里叶变换构建,在倒空间 q 点对角化得到声子频率 ω_qν 和本征矢 e_qν。
均方位移(MSD)通过全布里渊区 q 网格积分计算,决定 Debye-Waller 因子和温度依赖的散射强度衰减。
对于极性材料,非解析项(BORN 效应)通过 Born 有效电荷和介电常数修正 Γ 点附近的 LO-TO 劈裂。
仪器分辨率函数 R(ΔQ,ΔE) 通过卷积引入实验能量和动量展宽,Dysurf 支持多项式拟合(CNCS 等谱仪)和 Cooper-Nathans 全 4D 分辨率两种方法。
动力学矩阵 D(q):由二阶力常数 Φ 的傅里叶变换构建,m_κ 为原子质量
声子本征值方程:ω²_qν 为声子频率平方,e_qν 为声子本征矢
均方位移(MSD):⟨|u|²⟩ 决定 Debye-Waller 因子,通过全 BZ q 网格积分
仪器分辨率卷积:R(ΔQ,ΔE) 为能量和动量分辨函数,模拟实验展宽
图 3 | 二维正方晶格的倒空间示意图。G 为倒格矢,q 为声子矢量,Q 为精确动量转移,ΔqR 为仪器分辨率导致的微小附加波矢。
图 4 | 六方 TaS₂ 晶体的 2×2×1 超胞。黑色实线菱形为原胞,红色虚线矩形为构建的正交化单胞。
三、程序功能:四大应用场景
应用一:二维 SQE 切片(2D-SQE)— 布里渊区选择
2D-SQE 是最核心的应用模式,沿指定动量路径计算能量-动量色散图,直接对应 INS/IXS 测量结果。
CsI 示例:通过 Dysurf 计算发现,Γ 点附近声学支仅出现在偶数散射区(强反射),光学支仅出现在奇数散射区(弱反射)——这一信息直接指导了实验布里渊区选择,成功测量了 CsI 的完整声子谱。
PdSe₂ 示例:Dysurf 预测沿 (H, 2, −3) 方向 TA 和 LA-like 分支均具有可观测光谱权重,IXS 实验验证了分支可见性和相对强度的一致性。
TaS₂ 示例:在仪器几何受限条件下,Dysurf 的 2D-SQE 计算帮助筛选了 8 个候选布里渊区位置,最终选定了 [2+H, 2, 0]、[1+H, 1+H, 0] 和 [H, 0, 4] 三个最优路径,成功揭示了电子-声子耦合导致的声子软化。
应用二:四维 SQE(4D-SQE)— 声子色散拓扑
4D-SQE 包含材料的全部声子信息,可在任意动量和能量区域进行切片,探测感兴趣的声子特征。
GaN 示例:通过 4D-SQE 发现沿 Γ-M 方向存在一个 Arc 分支(低 Q 区 TO 模 + 高 Q 区 LA 模)与 TA 分支的嵌套行为,而沿 Γ-K 方向无此嵌套——这一发现仅通过传统三轴谱仪或 IXS 逐点测量难以实现。
4D-SQE 允许沿非高对称方向连续追踪声子分支,避免了传统测量中改变 q 路径时需重新对准样品的繁琐操作。
该功能为探索和识别倒空间扩展区域的声子色散拓扑提供了前所未有的能力,特别适用于研究嵌套行为和声子聚焦效应。
应用三:热漫散射(TDS)— 结构信息提取
TDS 通过分析 Bragg 峰强度演化和倒空间散射强度重分布,获取结构信息,特别适用于相变材料。
VO₂ 示例:VO₂ 在 340 K 发生金属-绝缘体相变,单斜相(M1)存在 4 种可能的孪晶畴。Dysurf 模拟了 {111} 倒空间切片的 X 射线 TDS 分布,成功区分了 Twin 1、Twin 2 和组合结构的贡献,与实验数据一致。
TDS 功能还可用于分析 Bragg 峰宽度、强度随温度的变化,以及缺陷和应变对散射的影响。
应用四:SQE 线切割与样品设计
SQE 线切割(Line Cut):在恒定 q 或恒定能量处提取一维切片,用于比较声子峰位置、线形和线宽。
GaN 示例:沿 Γ-M 方向提取 TA 模的恒定 q 扫描,Dysurf 模拟的峰位演化与测量结果一致。通过反卷积提取纯声子线宽,可用于分析热输运和相变中的非谐效应。
样品设计:Dysurf 根据元素类型自动获取相对原子质量、散射截面和吸收截面,推荐最佳样品厚度和几何参数——对于中子实验,典型推荐样品厚度为 1-5 mm,确保散射/吸收比最优。
四、软件安装与编译
程序概况
编程语言:Fortran 90/2003 | 外部依赖:LAPACK | 并行支持:MPI(OpenMPI 或 Intel MPI)
版本:1.2(2025) | 源码目录:/src/src_gfortran(gfortran版)、/src/src_intel(Intel版)
在线版本:http://36.138.185.163:5000/ — 适合小规模计算和快速验证,大规模计算请本地编译运行。
在线版本手册:docs/Dysurf_online_version_manual.pdf,输入模板:docs/Dysurf_online_version_manual/Input_template.txt
方式一:gfortran + OpenMPI + OpenBLAS(推荐)
前置条件:确保 mpif90 和 mpirun 可用。
编译命令:
cd your_own_path/Dysurf/src/src_gfortran
make mpi
运行示例:
mpirun -np 1 ./dysurf input.txt
这是最直接的构建路径,适合大多数用户。
方式二:Intel ifx + Intel MPI(conda 环境)
前置条件:安装 Intel 编译器和 MPI 包。
安装命令:
conda install -c https://software.repos.intel.com/python/conda/ -c conda-forge impi-devel
conda install -c https://software.repos.intel.com/python/conda/ -c conda-forge ifx_linux-64
编译命令:
cd your_own_path/Dysurf/src/src_intel
make mpi
注意:当前 src/src_intel 的 Makefile 使用 mpiifx 编译器包装器,需要使用匹配的 Intel MPI 运行时。如果 MKL 不可用,将回退至系统 LAPACK/OpenBLAS 链接。
五、输入文件说明
必需输入文件
1. 控制文件(input.txt):包含 &basic 和 &inputsqe 两个 namelist,以及 LATTICE_PARAMETERS、ATOMIC_POSITIONS 和 BORN(可选)三个模块。
2. 二阶力常数文件:FORCE_CONSTANTS(Phonopy 格式,推荐)或 espresso.fc(Quantum ESPRESSO q2r.x 格式)。
力常数通常由第一性原理计算获得(如 VASP + Phonopy 或 Quantum ESPRESSO + DFPT),支持超胞有限位移法和密度泛函微扰理论两种途径。
&basic namelist(基础参数)
ntypes(整数,必填):不同原子类型的数量
natoms(整数,必填):晶胞中总原子数
nsize(整数×3,必填):力常数计算所用的超胞尺寸(沿三个晶轴)
&inputsqe namelist(核心计算参数)
nat(整数×ntypes,必填):每种原子类型的原子数
elements(字符串×ntypes,必填):每种原子类型的元素名称
path(实数 3×3,必填):声子色散路径,path(:,1) 为色散方向(正交化常规晶胞基矢),path(:,2) 和 path(:,3) 为两个垂直方向
非必填关键参数:temp(温度,默认 300 K)、ne(能量点数,默认 1000)、deltaE(能量分辨率,默认 0.01 meV)、nqh(色散路径 q 点数,默认 100)、lneutron/lxray(中子/X射线计算开关)、nonanalytic(极性修正开关)、lresfunc(仪器分辨率开关)
完整参数列表(50+ 参数)详见手册第二章。
BORN 模块与极性修正
极性材料需要 BORN 模块提供 Born 有效电荷和介电常数张量,配合 nonanalytic = .TRUE. 激活 LO-TO 劈裂。
BAs 示例(examples/BAs/)提供了完整的 BORN 效应 A/B 对比测试:BAs.txt(含 BORN + nonanalytic = .TRUE.)vs BAs_no_born.txt(不含 BORN + nonanalytic = .FALSE.),验证了极性修正代码路径的正确性。
BORN 模块格式:介电常数张量 epsilon(3×3),Born 有效电荷 born(natoms×3×3,按原子顺序排列)。
图 2 | BAs 主输入文件示例。包含 &basic 和 &inputsqe 两个 Fortran namelist,以及 LATTICE_PARAMETERS、ATOMIC_POSITIONS 和 BORN 三个模块。
六、使用示例
示例 1:CsI — 中子散射布里渊区选择
CsI 为简单立方结构(两原子/晶胞),高对称方向纯纵波或纯横波,Bragg 强度偶数/奇数 Miller 指数差异显著。
Dysurf 预测:Γ 点附近声学支仅出现在偶数散射区(强反射),光学支仅出现在奇数散射区(弱反射)。实验验证了该预测,成功测量了 CsI 的完整声子谱。
输入文件位于 examples/CsI/,包含完整的 FORCE_CONSTANTS 和 input.txt。
图 5 | CsI 特定模式测量的布里渊区选择。(a-c) 沿 [H,0,0]、[H,1,0] 和 [H,2,0] 的 CsI 声子色散 2D-SQE 切割。对数色标表示散射强度。
示例 2:BAs — BORN 效应验证(A/B 对比测试)
BAs 为立方极性材料,BORN 效应在 Γ 点附近产生 LO-TO 劈裂。
该示例提供两个输入文件:BAs.txt(nonanalytic = .TRUE. + BORN 模块)和 BAs_no_born.txt(nonanalytic = .FALSE.,无 BORN 模块),其他 SQE 参数完全相同。
输出对比:omega_born.dat vs omega_no_born.dat 显示 Γ 点附近频率差异,SQE_300K_born.dat vs SQE_300K_no_born.dat 显示散射强度差异。
附带 Python 绘图脚本 plot_compare_q020_png.py 可直接生成对比图。
示例 3:PdSe₂ — X 射线散射多分支同时测量
PdSe₂ 为层状过渡金属二硫化物,Dysurf 辅助 IXS 实验沿 (2+H, 0, 0) 观测到 LA 分支,但 8 meV 以下仅一个分支可清晰测量。
通过 Dysurf 筛选,发现沿 (H, 2, −3) 方向 TA 和 LA-like 分支均具有可观测光谱权重,IXS 实验验证了双分支同时可见。
该示例展示了 Dysurf 如何帮助在有限束流时间内实现多声子分支的高效同时测量。
图 6 | PdSe₂ 多声子测量的布里渊区选择。(a,c) 沿 [2+H,0,0] 和 [H,2,−3] 的 PdSe₂ 声子色散 2D-SQE 切割。(b,d) 对应 IXS 实验测量结果。
示例 4:TaS₂ — 仪器几何受限下的布里渊区筛选
TaS₂ 为电荷密度波(CDW)材料,变温声子测量需求高,但三轴谱仪和 IXS 的几何限制使部分高 Q 或正 Q 区域不可达。
Dysurf 计算了 8 个候选布里渊区位置的 2D-SQE 切片,最终选定 [2+H, 2, 0]、[1+H, 1+H, 0] 和 [H, 0, 4] 三个最优路径。
实验成功揭示了沿 (ξ,0,0) 的软模和沿 (ξ,ξ,0) 的非单调色散行为,并在多个温度下完成了全面的声子测量——若无 Dysurf 辅助,在单次束流周期内难以实现。
图 7 | TaS₂ 仪器几何受限条件下的布里渊区选择。(a-h) 沿 8 个候选布里渊区位置的 TaS₂ 声子色散 2D-SQE 切割,最终选定 [2+H,2,0]、[1+H,1+H,0] 和 [H,0,4] 三个最优路径。
示例 5:GaN — 4D-SQE 声子嵌套与线宽分析
GaN 为六角纤锌矿结构,4D-SQE 计算揭示了沿 Γ-M 方向的 Arc 分支-TA 分支嵌套行为,沿 Γ-K 方向无此嵌套。
SQE 线切割提取 TA 模沿 Γ-M 的恒定 q 扫描,峰位演化与实验一致,通过反卷积提取纯声子线宽,用于分析非谐效应。
4D-SQE 功能允许沿任意方向连续追踪声子分支,特别适用于研究声子聚焦和嵌套行为,这是传统逐点测量无法实现的。
图 8 | INS 测量中观测到的 GaN 声子色散嵌套。(a-c) 沿 [H,-H,2] 的 S(Q,E),(d-f) 沿 [H,H,3] 的 S(Q,E)。(a,d) 实验 INS 数据,(b,e) Dysurf 模拟,(c,f) 叠加对比。
图 9 | INS 和第一性原理计算揭示的 GaN 面内 Matryoshka 嵌套色散行为。(a) 基面布里渊区中测量 S(Q,E) 的体积视图,(b) 沿 Γ-M 和 Γ-K 方向的计算色散。
图 11 | GaN 中 TA2 模沿 [H,0,4] 的声子线形。从 Dysurf 计算的 SQE 中通过线切割功能提取,离散数据点标记沿提取路径的 SQE 强度。
示例 6:VO₂ — TDS 孪晶域识别
VO₂ 在 340 K 发生金属-绝缘体相变,单斜 M1 相存在 4 种可能的孪晶畴。
Dysurf 模拟了 {111} 倒空间切片的 X 射线 TDS 分布,成功区分了 Twin 1 和 Twin 2 的贡献,与实验数据一致。
TDS 功能还适用于分析相变材料中 Bragg 峰宽度、强度随温度的变化,以及缺陷和应变对散射的影响。
图 10 | 模拟 VO₂ 单斜相 {111} 倒空间切片的 X 射线 TDS Q 分布。(a) 四种孪晶畴的原子结构(V 蓝色,O 红色),(b) Twin 1、(c) Twin 2、(d) 组合结构的 TDS 分布。色标为对数彩虹色标。
七、在线版本与对比讨论
Dysurf 在线版本
URL:http://36.138.185.163:5000/ — 绕过本地编译问题,直接通过 Web 界面提交计算。
在线版本手册:docs/Dysurf_online_version_manual/,输入模板:Input_template.txt。
适用场景:小规模计算、快速验证、教学演示。
限制:大规模计算(高密度 q 点采样、广泛 q 空间探索)不应在 Web 界面执行,需本地编译运行。
与同类软件的对比
Euphonic(Python):方便的声子结构因子计算,功能更广泛但缺乏专用 4D-SQE 和 TDS 工作流。
Phonopy(Python):声子色散和态密度计算的标准工具,但 S(Q,E) 模拟功能有限。
Mantid(C++/Python):专注于实验数据还原、可视化和分析,适合后处理。
Horace(MATLAB):单晶飞行时间谱仪数据分析,与 Dysurf 互补。
Dysurf 的独特优势:Fortran 高性能 + 专用 4D-SQE 工作流 + 仪器分辨率卷积 + 样品设计 + 开源免费。
局限性与注意事项
谐波近似:默认使用谐波力常数,在强非谐体系(如软模、温致相变)中,声子本征矢和频率可能显著偏离谐波值。
解决方案:Dysurf 兼容有效谐波力常数(如 TDEP 方法或 SCP 理论产生的 Phonopy 格式力常数),可显著改善强非谐体系的结果。
Debye-Waller 因子相位:代码提供两种处理方式(lphase 参数控制),对布里渊区选择影响极小。
绝对强度:模拟强度与实验绝对强度存在差异(受样品质量、仪器校准等因素影响),相对强度用于指导区域选择已足够可靠。
八、总结
核心结论
Dysurf 是一个基于二阶力常数的 Fortran 程序,可模拟 INS 和 IXS 的四维动力学结构因子,为实验设计提供理论指导。
四大核心功能——2D-SQE 布里渊区选择、4D-SQE 色散拓扑、TDS 结构分析、SQE 线切割——覆盖了非弹性散射实验的全流程需求。
通过 CsI、PdSe₂、TaS₂、GaN、VO₂ 等体系的实验验证,Dysurf 模拟与测量结果总体吻合良好,可大幅减少束流时间浪费。
程序完全开源(GNU GPL v3.0),提供在线版本,支持 gfortran 和 Intel 两种编译路径,附带 6 个完整示例。
获取与引用
代码仓库:https://github.com/Dysurf/Dysurf
论文引用:Li Y, Lin C, Ren Q, Liu J, Wei B, Hong J. Dysurf: A program for simulating four-dimensional dynamical structure factor. Comput. Phys. Commun. 327 (2026) 110258.
在线版本:http://36.138.185.163:5000/
联系作者:davy_li96@163.com(李永恒)、changpeng.lin@epfl.ch(林昌鹏)、binwei@hpu.edu.cn(魏斌)、hongjw@bit.edu.cn(洪家旺)
支撑信息 (Supporting Information)
S1 · 程序结构总览
源码目录结构
Dysurf-dysurf2025/
├── src/src_gfortran/ — gfortran + OpenMPI 源码
├── src/src_intel/ — Intel ifx + Intel MPI 源码
├── docs/ — 用户手册与在线版手册
├── examples/ — 6个完整示例(BAs, CsI, GaN, PdSe2, TaS2, VO2等)
├── tools/ — Python 预处理和绘图脚本
└── LICENSE — GNU GPL v3.0
输出文件说明
omega.dat:声子频率输出(ω_qν),包含所有 q 点和声子模式。
SQE_<温度>K.dat:动力学结构因子 S(Q,E) 输出,二维矩阵格式。
rmsd.dat:均方位移(MSD)输出,每行一个原子。
qpoints.dat / qpoints_full.dat:q 点列表(色散路径 / 全 bin box)。
SQE 文件格式:第一行为元数据(能量点数、q 点数、温度),随后为 S(Q,E) 二维矩阵。
S2 · 完整输入参数速查表
&basic namelist
ntypes(必填):不同原子类型数 | natoms(必填):总原子数 | nsize(必填×3):超胞尺寸
&inputsqe namelist — 必填参数
nat(×ntypes):每种原子类型原子数 | elements(×ntypes):元素名称 | path(3×3):色散路径(path(:,1) 必填)
&inputsqe namelist — 高级参数(手册第 4-5 页)
read_rmsd(.FALSE.):从文件读取 RMSD | filename_rmsd("rmsd.dat"):RMSD 文件名
filename_omega("omega.dat"):声子频率输出文件名 | xm(1):能量标准差倍数
degauss(0.5 meV):高斯展宽(lresfunc=.FALSE. 时启用)
aff_wk(.FALSE.):使用原子形状因子 f(Q) 替代原子序数近似
clatvec(可选):正交化晶格矢量(非正交原胞时使用),用于构建正交 bin box
masses(自动):每种原子类型的原子质量,省略时自动根据元素名称查找
coh_b / xray_b(自动):中子散射长度 / X射线散射长度,省略时自动根据元素名称查找
espresso(.FALSE.):使用 Quantum ESPRESSO q2r.x 格式力常数(espresso.fc)
q0(3×1,默认[0,0,0]):色散路径起点 | lphase(.FALSE.):是否包含位置相位因子 e^{iQ·d_κ}
&inputsqe namelist — 三轴谱仪分辨率参数(lresfunc & Cooper-Nathans)
tas_fix_mode("Ef"):固定能量模式 | tas_obs_mode("psf2d"):观测模式
tas_mono_dir / tas_sample_dir / tas_ana_dir:散射方向 | tas_e_fixed(14.7 meV):固定末态能量
tas_coll_h_*:水平准直器参数(arcmin) | u, v:样品取向矢量(倒格矢单位)
tas_mosaic_*:单色器/样品/分析器镶嵌度 | tas_d_spacing_*:晶面间距
tas_dm / tas_da(3.354 Å,PG(002)):单色器/分析器晶面间距 | tas_use_cn(.TRUE.):启用 Cooper-Nathans
tas_use_mosaic(.TRUE.):包含晶体镶嵌度贡献 | tas_debug_res(.FALSE.):输出调试信息
psf_shear_default(0.0):局部 2D PSF 剪切参数 | lsave_intrinsic_slice(.TRUE.):保存本征切片
lsave_psf_slice(.TRUE.):保存 PSF 展宽切片 | lsave_psf_params(.TRUE.):保存 PSF 拟合参数
BORN 模块
epsilon(3×3):介电常数张量 | born(natoms×3×3):Born 有效电荷,按原子顺序排列
S3 · 示例文件速查
examples/BAs/ — BORN 效应 A/B 测试
BAs.txt:含 BORN + nonanalytic = .TRUE. | BAs_no_born.txt:不含 BORN + nonanalytic = .FALSE.
输出:omega_born.dat / omega_no_born.dat(声子频率对比)、SQE_300K_born.dat / SQE_300K_no_born.dat(SQE 对比)
Plotting:plot_compare_q020_png.py 生成对比图 BAs_compare_q0p20.png
examples/BAs_BORN_test_intel/ — Intel 编译 BORN 测试
适配 Intel 编译器环境的 BORN 测试,输入文件 BAs_BORN_test.txt,运行脚本 run_example.sh。
examples/CN_TAS_resolution_test/ — Cooper-Nathans 分辨率测试
测试三轴谱仪全 4D 分辨率函数(Cooper-Nathans 方法),包含多种仪器配置。
examples/CsI/ — 中子散射完整示例
CsI 简单立方结构,验证 Dysurf 布里渊区选择功能,包含在线版本示例。
S4 · 参考文献
核心理论文献
[1] Squires G L 2012 Introduction to the Theory of Thermal Neutron Scattering (Cambridge)
[2] Dove M T 1993 Introduction to Lattice Dynamics (Cambridge)
[3] Burkel E 2000 Rep. Prog. Phys. 63 171 — IXS 综述
[9] Maradudin A A, Vosko S H 1968 Rev. Mod. Phys. 40 1 — 晶格动力学基础
[11] Cooper M J, Nathans R 1967 Acta Cryst. 23 357 — Cooper-Nathans 分辨率函数
相关软件
[32] Fair R et al. 2023 J. Appl. Cryst. 56 1595 — Euphonic
[33] Togo A 2023 J. Phys. Soc. Jpn. 92 012001 — Phonopy
[22] Arnold O et al. 2014 Nucl. Instrum. Meth. A 764 156 — Mantid
[24] Ewings R A et al. 2016 Nucl. Instrum. Meth. A 834 132 — Horace
[13] Kresse G, Furthmüller J 1996 Comput. Mater. Sci. 6 15 — VASP
[14] Giannozzi P et al. 2009 J. Phys.: Condens. Matter 21 395502 — Quantum ESPRESSO
S5 · 快速上手指南
三步开始使用 Dysurf
第一步:获取力常数。使用 VASP + Phonopy 或 Quantum ESPRESSO + DFPT 计算二阶力常数,得到 FORCE_CONSTANTS 文件。
第二步:编写输入文件。参考 examples/ 中对应示例,修改 &basic 和 &inputsqe 参数,确保 path、q0、elements 等参数正确。
第三步:编译运行。选择 gfortran 或 Intel 编译路径,编译后执行:mpirun -np 1 ./dysurf input.txt。
输出文件 omega.dat、SQE_*.dat 可直接用 Python/Matlab 绘图,或用 tools/ 目录下脚本进行后处理。
程序信息表
表 | Dysurf 程序摘要(PROGRAM SUMMARY):包含程序标题、许可证、编程语言、外部依赖、问题描述和求解方法。