ORCA价层虚轨道实操
实际运行PMVVO和LIVVO,讲清完整虚空间输入、两条VVO输出及后续使用时的正交性。
阅读本篇目录
完整虚轨道数往往大于价层讨论需要的轨道数。ORCA的PMVVO和LIVVO可从虚空间中构造并局域化价层虚轨道。本例实际从水分子的19条虚轨道中得到2条VVO,说明怎样输入以及哪些轨道可直接使用。
1. 准备结果#
下载局域轨道实例包,按局域化轨道实操解压并运行 bash run.sh。完整输入、版本和单点方法均在该文及包内;本例为ORCA6.1.1、HF/def2-SVP中性水分子,1个CPU进程。查看实际输出:
grep -A 6 'Construction of valence virtual orbitals' work/PMVVO/localize.log
grep -A 6 'Construction of valence virtual orbitals' work/LIVVO/localize.log
两种方法都给出最小基组维数7、价层虚轨道数2,输出范围为 5–6。占据轨道0–4保持不变。
| 方法编号 | 方法 | 本例目录 |
|---|---|---|
| 7 | PMVVO | work/PMVVO/ |
| 8 | LIVVO | work/LIVVO/ |
本包使用STO-3G作为IAO参考。不同体系的最小基组和占据数不同,不要假设永远得到两条VVO。
2. 输入必须给完整虚轨道范围#
本例有24条轨道,0–4占据,因此传入 5–23,不能事先只填5–6。程序会先构造VVO,再确定实际输出范围。
module purge
module load orca/6.1.1
mkdir vvo-demo
cp work/seed/case.gbw vvo-demo/in.gbw
cd vvo-demo
cat > vvo.in <<'EOF'
in.gbw
vvo.gbw
5
23
7
0
128
1e-8
0
0.95
0.85
2
1
0
1
0
0
EOF
"$ORCA_ROOT/orca_loc" vvo.in > vvo.out
ls vvo.gbw
grep -A 6 'Construction of valence virtual orbitals' vvo.out
cd ..
要运行LIVVO,把第5行改成8并使用另一个输出目录。其余输入行含义见局域化输入参数表。本例两种方法都已经实际运行,结果和完整输入分别保存在各自目录中。
3. 最容易混淆的正交性#
输出的两条VVO彼此正交,也与占据轨道正交;原来的其余虚轨道保留在文件中,却不保证与这两条新VVO正交。

右图直接计算了本次VVO5–6与原虚轨道7–23的重叠。PMVVO中的最大绝对重叠约 0.49507,LIVVO约 0.49485,清楚显示整个虚轨道集合不能直接视为完整正交基。
因此,查看这两条VVO的空间分布或成键性质时,使用程序报告的5–6范围;准备交给要求完整正交虚空间的相关计算时,需要按相应方法重新整理和正交化轨道。不要只因文件有24条轨道,就认为它是可以直接替代原正则波函数的完整虚空间。
bash analyze.sh work
脚本检查选中两条VVO的正交性、与占据空间的正交性、占据密度不变,并独立从STO-3G参考基组构造IAO/SVD子空间。参考数据不需要另装PySCF或重新运行SCF即可检查:
bash analyze.sh
进一步操作见ORCA原生VVO说明。图中左侧的Fock矩阵操作是子空间重新正则化,作用和VVO选择不同。