ORCA EPR张量方向与欧拉角
从实际甲基自由基EPR结果出发,导出g和超精细主轴,比较ZYZ、ZXZ及轴排序,并解释近简并时的角度变化。
阅读本篇目录
已经算出g矩阵和超精细耦合A矩阵后,还常常需要知道它们在分子中指向哪里。这篇继续使用甲基自由基EPR实例的实际PBE0/EPR-II与EPR-III结果,通过 orca_euler 导出方向、角度和可以查看的XYZ文件,不重新计算电子结构。
1. 先运行完整后处理例子#
下载张量方向实例包,在新目录解压:
python3 -m zipfile -e orca-euler-axes-wave524-*.zip orca-euler-axes
cd orca-euler-axes
bash run.sh
流程依次读取两组已有的 case.property.txt,各运行ZYZ、ZXZ和参考轴反序三种条件,随后提取表格、画图。结果在 work、tables 和 figures;只查看随包原始结果时执行 bash analyze.sh。
ORCA6.1.1为官方CPU预编译发行包,配套OpenMPI4.1.8由GCC13.3构建;本例单进程、单线程,使用已有ASE3.29.0环境的Python、NumPy/SciPy与Matplotlib。这里运行的是已有结果的轻量后处理,不需要GPU。
2. 需要哪个文件#
需要同一次计算得到g与A信息的 .property.txt 属性文件。同次计算中两类张量齐全时,ORCA主程序通常已自动输出相对角度;独立工具便于改变角度约定、排序和导出选项。
本包 inputs/methyl-epr-iii-epr/case.inp 对应的实际原始输入为:
! UKS PBE0 EPR-III VeryTightSCF NoRI
%pal nprocs 1 end
%maxcore 750
* xyz 0 2
C 0.0000000000 0.0000000000 0.0000000000
H 1.0800000000 0.0000000000 0.0000000000
H -0.5400000000 0.9353074361 0.0000000000
H -0.5400000000 -0.9353074361 0.0000000000
*
%eprnmr
gtensor true
ori GIAO
nuclei = all H {aiso,adip,aorb}
nuclei = all C {aiso,adip,aorb,ist=13}
end
这里是中性双重态CH₃,碳超精细参数明确指定¹³C。EPR-II对照只改变专用基组。完整电子结构任务的提交、SCF和磁响应检查见原EPR教程,本篇直接复用其实际输出。
3. 默认ZYZ角与主轴导出#
module purge
module load orca/6.1.1
mkdir euler-demo
cp inputs/methyl-epr-iii-epr/case.property.txt euler-demo/
cd euler-demo
"$ORCA_ROOT/orca_euler" case -refg -conv zyz -plotA -detail > zyz.log
tail -n 34 zyz.log
cd ..
case 是属性文件的基名。-refg 选择g参考,-conv zyz 指定角度约定,-plotA 导出超精细主轴,-detail 展示轴之间的夹角和排序关系。注意这里不用把 .property.txt 再接在基名后面。
默认g轴按照小、中、大主值分为gx、gy、gz。A轴会重新排序并选择符号,使相对旋转较小;应连同表中 Ax、Ay、Az 及详细的原主轴对应一起读取,不能直接假定Ax总是最小超精细值。
本例EPR-III中H2的ZYZ显示角为 90.0°、30.0°、−90.0°,对应的Ax、Ay、Az约为 −70.25、−34.42、−112.37 MHz。工具输出原子索引从0开始;H2对应输入第3行原子,而C0对应第1行。

4. XYZ里为什么出现He、Ne、Ar、Kr#
head euler-demo/case.2.A.xyz
head euler-demo/case.2.g.xyz
这两个文件分别给出H2处的A轴和g轴。四个辅助标签表示一个坐标架:
| 标签 | 含义 |
|---|---|
| He | 坐标架原点,即目标核的位置 |
| Ne | x轴端点 |
| Ar | y轴端点 |
| Kr | z轴端点 |
方向依次取 Ne−He、Ar−He、Kr−He;XYZ坐标单位为Å。它们是便于可视化的辅助点,不是向CH₃中加入稀有气体。箭头长度也是显示长度,不表示g或A数值大小。可在支持XYZ的软件中查看;本篇配图按实际坐标和导出的方向绘制。
5. 改约定与排序,为什么角度变了#
在同一份结果上比较另外两种表示:
cd euler-demo
"$ORCA_ROOT/orca_euler" case -refg -conv zxz -detail > zxz.log
"$ORCA_ROOT/orca_euler" case -refg -conv zyz -order 3 2 1 -detail > order.log
tail -n 23 zxz.log
tail -n 23 order.log
cd ..
对于H2,ZXZ显示约 180.0°、30.0°、180.0°;参考g轴改成3、2、1顺序后,ZYZ显示约 30.0°、0.0°、0.0°。它们描述的是同一次电子结构结果,变化来自角度约定和参考轴标签。

图中方向余弦是两根单位轴的点积。ZYZ与ZXZ两行在同一参考排序下保持同样的轴方向;反序后,参考坐标架和A轴对应也会调整,应按各自输出的标签读取。不要把角度变化直接解读为分子结构发生旋转或磁参数改变。
工具屏幕角度只显示到0.1°,XYZ端点显示到6位小数;由显示数字重建时会有舍入差异。需要精确比较时,应同时保留原属性张量、排序和约定。
6. 近简并主轴,不能只比较三个角#
这组平面甲基自由基的两个面内g主值几乎相等:EPR-II的两者之差约 1.45×10⁻⁹,EPR-III约 2.07×10⁻¹⁰。接近简并时,面内单根主轴很容易随数值细节改变;碳A矩阵也有近简并主值对。

因此两次结果的个别欧拉角不同,不能单独说明磁各向异性发生了明显变化。实际比较先看主值、完整张量及其主轴子空间,再看相对方向。β接近0时,还会出现同一旋转可由多组α、γ表示的情况。
这个例子只演示g与超精细A。高自旋体系的D参考需要实际计算D矩阵,核四极张量也需要相应核与电场梯度结果,不能直接套用这里的双重态文件。
7. 最后得到哪些结果#
head tables/angles-principals.csv
head tables/axis-directions.csv
bash analyze.sh work
angles-principals.csv 按每种约定保存核索引、角度和与之对应的Ax/Ay/Az;axis-directions.csv 保存每根有符号单位轴。原生日志与XYZ保留在各组 work/euler* 目录,图片在 figures。
正式比较或交给其他自旋Hamiltonian程序时,连同 张量约定、原子编号、同位素、单位、轴排序 一起传递。具体选项见ORCA欧拉角工具说明;非对称g/A的指标顺序见官方张量约定。