ORCA专题

ORCA价层虚轨道实操

实际运行PMVVO和LIVVO,讲清完整虚空间输入、两条VVO输出及后续使用时的正交性。

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

完整虚轨道数往往大于价层讨论需要的轨道数。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选择不同。

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

查看配图

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

100%查看原图 ↗