ORCA局域化轨道实操
用水分子演示PM、Boys和IAO局域化,完整给出终端输入、轨道空间选择与实际结果。
阅读本篇目录
想把分散在整个分子上的正则轨道转换成更便于讨论化学键、孤对电子的形式,可以对已有波函数做轨道局域化。下面使用实际 HF/def2-SVP 水分子结果,对比六种占据轨道局域化方法,并提供完整虚轨道与价层虚轨道的配套实例。
1. 运行完整例子#
下载ORCA局域轨道实例包,在已分配的 CPU 计算资源中解压运行:
python3 -m zipfile -e orca-local-orbitals-wave518-*.zip orca-local-orbitals
cd orca-local-orbitals
bash run.sh
脚本依次完成一次水分子单点、10组局域化、3组子空间重新正则化及结果核对。已有 work/ 时请重新解压到新目录再运行完整流程;已有自己的波函数,可以直接按后面的原生命令操作,无需为局域化重复做单点。
模块为 orca/6.1.1,采用官方预编译 ORCA 6.1.1,配套 OpenMPI 4.1.8(GCC 13.3 构建)。本例为1个CPU进程,不使用GPU,也没有重新编译ORCA。生产计算的资源和提交方式见ORCA使用指南。
完整的 inputs/water.inp 为:
! HF def2-SVP TightSCF NoSym NoRI
%pal nprocs 1 end
%maxcore 1024
* xyz 0 1
O -1.551007000 -0.114520000 0.000000000
H -1.934259000 0.762503000 0.000000000
H -0.599677000 0.040712000 0.000000000
*
这是中性闭壳层单重态水分子,坐标为 Å。固定几何的单点能量为 −75.960796123673 hartree,没有优化结构。10个电子占据0–4号轨道,轨道编号从0开始。
2. 六种占据轨道方法怎么选#
| 原生方法编号 | 方法 | 本包目录 | 本例轨道范围 |
|---|---|---|---|
| 1 | Pipek–Mezey,PM | work/PM/ |
0–4 |
| 2 | Foster–Boys,FB | work/FB/ |
0–4 |
| 3 | IAO-IBO | work/IAOIBO/ |
0–4 |
| 4 | IAO-Boys | work/IAOBOYS/ |
0–4 |
| 5 | NEWBOYS | work/NEWBOYS/ |
0–4 |
| 6 | AHFB | work/AHFB/ |
0–4 |
PM侧重按原子划分的轨道成分,Boys侧重空间集中程度;NEWBOYS和AHFB是Boys相关算法。IAO方法引入最小参考基组,本包明确采用STO-3G。不同方法得到的局域轨道不必逐个相同。
本包还在 PM-virtual 和 FB-virtual 中演示对完整虚空间5–23做普通PM/FB局域化。另两种方法7、8用于选择价层虚轨道,操作与限制见价层虚轨道教程,不要把它们和完整虚空间旋转混为一谈。
3. 手动生成PM局域轨道#
module purge
module load orca/6.1.1
mkdir local-demo
cp work/seed/case.gbw local-demo/in.gbw
cd local-demo
cat > localize.in <<'EOF'
in.gbw
out.gbw
0
4
1
0
128
1e-8
0
0.95
0.85
2
1
0
1
0
0
EOF
"$ORCA_ROOT/orca_loc" localize.in > localize.out
ls out.gbw
cd ..
文件中每行对应一个参数:
| 行 | 含义 | 本例 |
|---|---|---|
| 1、2 | 输入、输出波函数 | in.gbw、out.gbw |
| 3、4 | 首、末轨道,均包含在内 | 0、4 |
| 5 | 方法编号 | 1,即PM |
| 6 | alpha/闭壳层算符编号 | 0 |
| 7–9 | 最大迭代、绝对和相对容差 | 128、1e-8、0 |
| 10、11 | 打印时的局域/成键分类阈值 | 0.95、0.85 |
| 12–14 | 打印级别、Cholesky初猜、随机化 | 2、1、0 |
| 15 | IAO参考基组编号 | 1,即STO-3G |
| 16 | 最终成分的原子布居方式 | 0,即Mulliken |
| 17 | 原生附加轨道展宽输出 | 0,关闭 |
最后一项在这个独立后处理流程中保持0,避免依赖原计算的 case.SHARKINP.tmp 临时文件。本包直接从导出的轨道系数和解析高斯积分计算空间展宽,不需要恢复该临时文件。
需要换成FB、IAO-IBO等方法时,修改第5行;更换体系后,先核对实际占据数,再修改第3、4行。IAO占据轨道分析应包含全部占据轨道。本例RHF占据空间中的幺正旋转保持电子密度;这一结论不能直接套用到任意CASSCF轨道旋转。
4. 把自己的局域轨道导出#
cd local-demo
cat > out.json.conf <<'EOF'
{
"MOCoefficients": true,
"Basisset": true,
"MullikenCharge": false,
"LoewdinCharge": false,
"JSONFormats": ["json"]
}
EOF
"$ORCA_ROOT/orca_2json" out.gbw > export.out
ls out.json
cd ..
这会导出本次实际局域轨道。绘制轨道等值面时,把对应的GBW交给ORCA轨道绘图工具。局域轨道通常不再是Fock算符的本征轨道,不要把文件中沿用的轨道能量直接当作新的正则轨道能级。
5. 本次得到了什么#

对本例5条占据轨道,独立计算的展宽平方之和为:
| 表示方式 | 展宽平方之和(bohr²) |
|---|---|
| 原正则轨道 | 9.162806 |
| PM | 7.093615 |
| FB | 6.764647 |
| IAO-IBO | 7.075117 |
| IAO-Boys | 6.764968 |
| NEWBOYS | 6.764647 |
| AHFB | 6.764647 |
数值表示空间集中程度,不是分子总能量。PM优化的目标也不同于Boys,不能仅按这一列给所有方法排优劣。

图中的大红点是氧,空心点是氢,五种颜色是五条轨道的空间中心。中心可能重合;同一编号在不同旋转后的表示中不保证对应同一条化学轨道。完整数据和画图脚本均在包内。
bash analyze.sh work
/public/toolkit/miniconda3/envs/ase-3.29.0/bin/python plot_results.py
画图脚本默认读取包内参考数据,生成 figures/ 下的三张PNG。脚本核对轨道正交性、占据密度和子空间,并用解析积分计算轨道中心、展宽和局域化目标。本包使用ORCA 6.1.1实际的长度常数 1 bohr = 0.5291772083 Å。参考ORCA局域化说明及该版本的单位约定。