ORCA专题

ORCA数据与基组导出

导出轨道、密度矩阵、重叠矩阵和基组,用真实水分子结果说明JSON读取和反向转换。

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

需要自己画轨道能级、读取原子电荷,或把波函数数据交给分析脚本时,可以使用 orca_2json。需要查看基组的指数和收缩系数时,使用 orca_exportbasis。两者都可以利用已有结果,不必重新做电子结构计算。

1. 准备本例#

下载并解压ORCA文件处理实例包,进入 orca-file-tools。如果已按轨道与电子密度画图运行 bash run.sh,直接继续;否则先在已分配的 CPU 资源中执行这一步。完整流程要求新目录;后面的 json、plot、basis、potential 是对已有波函数的后处理,可以单独再次运行。

环境为 ORCA 6.1.1 官方预编译版、配套 OpenMPI 4.1.8;本组以 1 个 CPU 进程处理 HF/def2-SVP 水分子。分析脚本使用集群现有 NumPy 环境。

2. 导出JSON#

bash run.sh json
ls work/case.json work/roundtrip/original_copy.json

这一步先导出原波函数,再演示 JSON→GBW→JSON。需要手动操作时,在原计算目录准备同主名的配置:

module purge
module load orca/6.1.1
cd work
cat > case.json.conf <<'EOF'
{
  "MOCoefficients": true,
  "Basisset": true,
  "MullikenCharge": true,
  "LoewdinCharge": true,
  "1elIntegrals": ["S", "H", "T", "V"],
  "Densities": ["all"],
  "JSONFormats": ["json"]
}
EOF
"$ORCA_ROOT/orca_2json" case.gbw > json.log
cd ..

配置名是 case.json.conf,与 case.gbw 主名一致。这里只请求这组分析所需的数据;没有要求输出双电子积分。大体系的积分与密度矩阵会占用较多磁盘,不要盲目打开所有输出。

本例字段 内容与单位
Molecule.Atoms 原子坐标、基组和电荷;坐标单位看CoordinateUnits,本例为Angs
MolecularOrbitals.MOs 每个轨道的系数、占据数和能量;本例能量单位Eh
S-Matrix AO重叠矩阵
H-Matrix、T-Matrix、V-Matrix 单电子哈密顿量、动能和核吸引矩阵
Densities.scfp 本次SCF的AO密度矩阵

打印所有轨道能量和占据数:

/public/toolkit/miniconda3/envs/ase-3.29.0/bin/python - <<'PY'
import json
m = json.load(open('work/case.json'))['Molecule']
print(m['CoordinateUnits'], m['MolecularOrbitals']['EnergyUnit'])
for i, orbital in enumerate(m['MolecularOrbitals']['MOs']):
    print(i, orbital['Occupancy'], orbital['OrbitalEnergy'])
PY

水分子实际JSON中的重叠矩阵、轨道能量和原子电荷

水分子有 24 个基函数、24 个分子轨道和10个电子。Mulliken 与 Löwdin 的原子电荷可以不同,它们是不同划分方式,不能把两列数混在一起解释。

3. 从JSON重建GBW#

在独立目录中操作,保留原波函数:

mkdir json-back
cp work/case.json json-back/original.json
cd json-back
module purge
module load orca/6.1.1
"$ORCA_ROOT/orca_2json" original.json -gbw > json-to-gbw.log
ls original_copy.gbw
cat > original_copy.json.conf <<'EOF'
{
  "MOCoefficients": true,
  "Basisset": true,
  "MullikenCharge": false,
  "LoewdinCharge": false,
  "JSONFormats": ["json"]
}
EOF
"$ORCA_ROOT/orca_2json" original_copy.gbw > gbw-to-json.log
cd ..

本版实际写出 original_copy.gbw。重建依赖 JSON 中保存的基组、几何和轨道信息,不是重新计算一个 SCF,也不会自动补回所有原始计算的密度容器和性质文件。本例逐项比较了反向转换前后的全部轨道能量、占据数和系数。

4. 查看和导出基组#

bash run.sh basis
cat work/water-def2-svp.orca
cat work/water-def2-svp.bas

对应的原生命令为:

module purge
module load orca/6.1.1
cd work
"$ORCA_ROOT/orca_exportbasis" -b def2-SVP -a H O -f ORCA -o water-def2-svp.orca
"$ORCA_ROOT/orca_exportbasis" -b def2-SVP -a H O -f GAMESS-US -o water-def2-svp.bas
cd ..

-a H O 限定导出氢、氧;-f 选择格式,-o 指定文件。ORCA格式中包含 NewGTO 片段,需要自定义基组时,取相应片段放入自己的 %basis 块;不要把整份含说明文字的文件直接当作主输入。

本例氧为 3s2p1d 收缩,共14个球谐基函数;每个氢为 2s1p,共5个,因此水分子为 14+5+5=24。不同格式的收缩系数可能采用不同归一化尺度,原始系数不一定逐字相等;应连同指数与收缩归一化方式一起比较。

5. 核对自己的导出#

bash analyze.sh work

脚本检查本例的 CᵀSC=I、tr(PS)=10、P=C·occ·Cᵀ、H=T+V、总电荷、基组和反向转换数据。核对有助于发现读取矩阵方向、轨道编号或单位时的错误;如果更换为其他分子,应相应修改电子数、输入和分析目标。

字段和选项见 ORCA的JSON说明及基组导出工具说明。

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

查看配图

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

100%查看原图 ↗