理论化学计算软件ORCA指南-基于python库orcacal

2025-12-23 22:31:43 | 世界杯的规则

文章目录

1. 前言1.1. ORCA 简介1.2. Multiwfn 简介1.3. orcacal 简介

2. 安装2.1. ORCA 的安装2.1.1. Windows 下安装2.1.2. Linux 下安装2.1.2.1. 安装 WSL22.1.2.2. 下载和安装 ORCA Linux 包

2.2. Multiwfn 安装

3. ORCA 的运行3.1. 通用运行流程3.2. 输入文件3.3. 控制方法、基组、工作类型3.3.1. 常用工作类型3.3.2. (密度)泛函查询3.3.3. 基组查询3.3.4. 泛函和基组的选择3.3.5. RI 近似3.3.6. 关闭布居分析3.3.7. 自洽场方程的计算模式

3.4. 可选的常用非方法模块3.4.1. pal nprocs / maxcore 并行计算3.4.2. $new_job 新建任务3.4.3. xyzfile 读取外部的坐标文件

3.5. 常见输出文件类型3.6. 使用 python 运行 ORCA

4. 常用计算4.1. 几何优化 频率计算4.2. 单点能计算4.3. 福井指数计算4.4. 激发态

1. 前言

本指南将结合 python 库 orcacal 对 ORCA 的计算进行说明。orcacal 包含了辅助工具 Multiwfn。

1.1. ORCA 简介

ORCA 是一款对学术用户免费但不开源的量子化学程序;它主要由 Frank Neese 设计开发,是包含了从头计算、DFT、半经验方法和耦合簇的量子化学程序包。

1.2. Multiwfn 简介

Multiwfn 是开源免费的波函数分析程序,提供许多重要的分析方法。

If Multiwfn is used in your research, at least the following papers must be cited in main text:

Tian Lu, Feiwu Chen, Multiwfn: A Multifunctional Wavefunction Analyzer, J. Comput. Chem. 33, 580-592 (2012) DOI: 10.1002/jcc.22885Tian Lu, A comprehensive electron wavefunction analysis toolbox for chemists, Multiwfn, J. Chem. Phys., 161, 082503 (2024) DOI: 10.1063/5.0216272

1.3. orcacal 简介

orcacal 是萌豚老师开发的,一个通过 Python 调用 ORCA 和 Multiwfn 进行计算的 python 库。 它封装了常用的计算方法,方便用户在化学计算和模拟中使用。该库旨在简化用户与 ORCA 之间的交互,并提供多个直观的 API 接口来读取和分析各种理论计算结果。 项目地址:https://github.com/HTY-DBY/orcacal

2. 安装

作者无 Mac 电脑,无法对 Mac 做出详细教程

2.1. ORCA 的安装

在 ORCA 官网 https://orcaforum.kofo.mpg.de/app.php/dlext/ 可下载最新的的 ORCA 安装包(需要全局魔法)。必须注册账号 后,页面才会有各个版本的下载显示。截至 2024-11-13,已更新至 6.0.1 版本,该版本的具体需要下载的文件和安装方法见后文。由于你肯定会需要用到并行功能,所有我会连同并行方式一并讲解。

在本文中,以 {orcaIns} 表示 orca 的安装路径。

2.1.1. Windows 下安装

在 ORCA 官网 下载 ORCA 6.0.1, Windows, 64bit, Installer

解压由 ORCA 6.0.1, Windows, 64bit, Installer 下载的 Orca6.0.1.Win64.zip, 双击 Orca6.0.1.Win64.exe 进行安装。

务必选择完整安装:

在项目目录中新建 input.inp 文件,令其内容为:

! HF DEF2-SVP LARGEPRINT

* xyz 0 1

O 0.0000 0.0000 0.0626

H -0.7920 0.0000 -0.4973

H 0.7920 0.0000 -0.4973

*

在项目目录下使用终端,运行 {orcaIns}/orca input.inp > output.out,未报错且目录下产生其他文件则表示 ORCA 安装成功。

在微软官网 https://www.microsoft.com/en-us/download/details.aspx?id=57467 下载并安装 Microsoft MPI v10.0 的 msmpisetup.exe。

在项目目录中新建 input.inp 文件,令其内容为:

! HF DEF2-SVP LARGEPRINT

% pal nprocs 2 end

* xyz 0 1

O 0.0000 0.0000 0.0626

H -0.7920 0.0000 -0.4973

H 0.7920 0.0000 -0.4973

*

在项目目录下使用终端,运行 {orcaIns}/orca input.inp > output.out,未报错且目录下产生其他文件则表示 ORCA 并行功能安装成功。

2.1.2. Linux 下安装

2.1.2.1. 安装 WSL2

WSL2 是 Windows 下的 Linux 子系统,如果你已经有了其他的 Linux 系统,可以跳过这一步。

安装方法具体参考 https://blog.csdn.net/weixin_44301630/article/details/122390018

你的 WSL2 可能在不远的将来遇到这个问题 Could not write value to key \SOFTWARE\Classes\Drive\shell\WSL:

WSL 正在完成升级...

Could not write value to key \SOFTWARE\Classes\Drive\shell\WSL. Verify that you have sufficient access to that key, or contact > your support personnel.

更新失败(退出代码: 1603)。

Error code: Wsl/CallMsi/Install/ERROR_INSTALL_FAILUR

可以看看这个解决方法 https://github.com/microsoft/WSL/issues/11697。

建议你增加一个在 Windows 中使用右键快速在 WSL2 中复制符合 Linux 文件路径规范的小脚本。

2.1.2.2. 下载和安装 ORCA Linux 包

在 ORCA 官网 下载 ORCA 6.0.1, Linux, x86-64, Installer Version:

挪放至你喜欢的 Linux 的目录下,这里我放在了 /home/hty/ins_bao/ORCA_6 中:

在终端运行(注意部分位置替换为你的目录和实际文件名):

cd /home/hty/ins_bao/ORCA_6 # 进入目录

chmod +x orca_6_0_1_linux_x86-64_shared_openmpi416.run # 赋予权限

./orca_6_0_1_linux_x86-64_shared_openmpi416.run # 安装操作

# orca 6.0.1 默认指定了安装位置是用户目录,例如 /root/orca_6_0_1,注意查看输出

# 安装后也可以手动给它挪动位置

# 可以手动或者 rm -f ./orca_6_0_0_linux_x86-64_shared_openmpi416.run 删除安装包

在项目目录中新建 input.inp 文件,令其内容为:

! HF DEF2-SVP LARGEPRINT

* xyz 0 1

O 0.0000 0.0000 0.0626

H -0.7920 0.0000 -0.4973

H 0.7920 0.0000 -0.4973

*

在项目目录下使用终端,运行 {orcaIns}/orca input.inp > output.out,未报错且目录下产生其他文件则表示 ORCA 安装成功。

在下载并安装

在项目目录中新建 input.inp 文件,令其内容为:

! HF DEF2-SVP LARGEPRINT

% pal nprocs 2 end

* xyz 0 1

O 0.0000 0.0000 0.0626

H -0.7920 0.0000 -0.4973

H 0.7920 0.0000 -0.4973

*

在项目目录下使用终端,运行 {orcaIns}/orca input.inp > output.out,未报错且目录下产生其他文件则表示 ORCA 并行功能安装成功。

2.2. Multiwfn 安装

可以在 Multiwfn 官网 http://sobereva.com/multiwfn/ 下载,python 库 orcacal 集成了 Multiwfn 的部分功能,仅使用后文的案例的话,直接安装 orcacal 即可。

3. ORCA 的运行

3.1. 通用运行流程

首先安装 ORCA。在工作目录下编纂一个输入文件,例如:input.inp;确定一个输出文件名称,例如:output.out。

终端中运行命令 {orcaIns}/orca input.inp > output.out。

可以填入具体路径,例如 a/b/c/input.inp,建议加双引号避免空格错误。例如"a f/b e/c/input ggg.inp",具体写作: "{orcaIns}/orca" "a f/b e/c/input ggg.inp" > "ww/yy/f f/output aaa.out"。

如果配置了环境变量,则可以使用 orca input.inp > output.out,但这是不推荐的,因为无法调用并行计算功能。

ORCA 运行后至少会在当前目录下产生 output.out 和 output.gbw 两个文件。

3.2. 输入文件

输入文件 input.inp 的通用结构如下,关键字不区分大小写,以水分子为例:

# 控制方法、基组、工作类型,这个需要放在第一行

! HF DEF2-SVP LARGEPRINT

# 后面的模块模块间没有顺序可言,先写哪个都行

# 模块

% pal nprocs # 设置并行计算使用的 CPU 核心数

# 输入坐标类型,电荷和自旋多重度。笛卡尔坐标的默认单位是埃

* xyz 0 1

O 0.0000 0.0000 0.0626

H -0.7920 0.0000 -0.4973

H 0.7920 0.0000 -0.4973

*

# 模块

% maxcore # 以 MB 为单位,限制每个核心使用内存的大小

#是 ORCA 中的注释符号,被注释掉后的部分不被程序读取。

! 写在开头,描述控制方法、基组、工作类型

* xyz 0 1中,xyz 表示笛卡尔坐标系,内坐标的写法不常用,这里不再展开描述。 0 是分子的总电荷,1 是分子的自旋多重度(等于分子总自旋数的两倍再加一)

3.3. 控制方法、基组、工作类型

3.3.1. 常用工作类型

! Freq 频率计算! Opt 几何优化! LARGEPRINT,该命令可输出全部的轨道信息,方便通过 Avogadro 或 Gaussian View 对 output.out 进行轨道可视化和数值显示

3.3.2. (密度)泛函查询

https://www.faccts.de/docs/orca/6.0/manual/contents/structure.html#density-functional-methods

3.3.3. 基组查询

https://www.faccts.de/docs/orca/6.0/manual/contents/structure.html#basis-sets

3.3.4. 泛函和基组的选择

可以阅读下 http://bbs.keinsci.com/thread-13560-1-1.html, 我一般使用泛函 B3LYP ,色散矫正 D3 ,基组def2-TZVP(-f),辅助基组 def2/J,再开启 RI 近似 RIJCOSX,总命令为:

! B3LYP D3 def2-TZVP(-f) def2/J

3.3.5. RI 近似

RI 近似默认开启,是 ORCA 的一种降低耗时且损失微乎其微的加速方法。 如果不想使用 RI 则需要输入 ! NoRI 关闭,不建议。 默认为 ! RIJCOSX ,还有其他类型的 RI 近似可定义:! RIJ,! RIJK,! RIJONX ,一般用 ! RIJCOSX 即可,优势明显。

3.3.6. 关闭布居分析

默认情况下,在计算完自洽场后会自动执行 Mulliken 布居分析、Loewdin 布居分析和 Mayer 布居分析。 下面是手动设置是否分析的关键词:

! NoMulliken 关闭 Mulliken 布居分析! NoLoewdin 关闭 Loewdin 布居分析! NoMayer 关闭 Loewdin 布居分析! Allpop 开启所有布居分析! Nopop 关闭所有布居分析

3.3.7. 自洽场方程的计算模式

! NormalSCF 正常自洽场收敛标准! TightSCF 严格的自洽场收敛标准! VeryTightSCF 非常严格的自洽场收敛标准! SlowConv ------! LShift 开启电平转换! SOSCF 打开二阶近似自洽场! NRSCF 打开牛顿-拉夫森自洽场! DIIS 打开 DIIS! Direct 直接积分模式! Conv 传统积分模式! RHF 闭壳层计算! UHF 非限制性自旋计算! ROHF 限制性开壳层计算,需要更多输入参数

3.4. 可选的常用非方法模块

3.4.1. pal nprocs / maxcore 并行计算

% pal nprocs 设置并行计算使用的 CPU 核心数;% maxcore 以 MB 为单位,限制每个核心使用内存的大小:

! HF DEF2-SVP LARGEPRINT

% pal nprocs 2 end

% maxcore 400

* xyz 0 1

O 0.0000 0.0000 0.0626

H -0.7920 0.0000 -0.4973

H 0.7920 0.0000 -0.4973

*

3.4.2. $new_job 新建任务

新建一个任务,并依此类推:

! HF DEF2-SVP LARGEPRINT

* xyz 0 1

O 0.0000 0.0000 0.0626

H -0.7920 0.0000 -0.4973

H 0.7920 0.0000 -0.4973

*

$new_job # 新建一个任务,依此类推

! HF DEF2-SVP LARGEPRINT OPT

* xyz 0 1

O 0.0000 0.0000 0.0626

H -0.7920 0.0000 -0.4973

H 0.7920 0.0000 -0.4973

*

3.4.3. xyzfile 读取外部的坐标文件

xyzfile 用于读取外部的坐标文件(此方法我没有成功到获取正确的输出文件):

! HF DEF2-SVP LARGEPRINT # 控制方法、基组、工作类型

* xyzfile 0 1 H2O.xyz # 电荷和自旋多重度

文件 H2O.xyz 为:

3

O 0.0000 0.0000 0.0626

H -0.7920 0.0000 -0.4973

H 0.7920 0.0000 -0.4973

3.5. 常见输出文件类型

.out 保存了主要的计算结果的信息。.xyz 包含结构优化后的优化结构。如果优化不成功那么就包含最后一帧的结构。可用作以后读取结构使用。.gbw 波函数文件。类似于高斯的 chk 文件,包含基态的波函数和结构信息分子结构信息等等。input.molden/input.molden.input 可以载入 Multiwfn 进行分析的文件.nto 波函数文件,包含有关 TDDFT 计算中的 NTO 轨道的信息可用于多组态的初猜轨道。.uno 包含 UNO 自然轨道的信息(由!UNO 生成)可用于多组态计算的初猜轨道。.hess 包含 Hessian 矩阵(频率计算)。计算振动分辨光谱时候会需要用到.allxyz 坐标文件,柔扫所有点优化好的坐标 适合用于之后的批量单点能计算。.mp2nat 波函数文件,包含双杂化或者 MP2 计算产生的自然轨道信息。可用作多组态的初猜轨道。.loc 包含定域轨道信息(通过%loc 块生成).unso 包含 UNSO 轨道信息(由!UNO 生成).qro 包含 QRO 信息(由!UNO 生成).trj 结构优化的轨迹。包含用于柔性表面扫描的所有步骤的整个轨迹,包括每个扫描点的中间优化步骤.00n.xyz 柔性扫描第 n 点坐标.00n.gbw 柔性扫描第 n 点波函数.relaxscanscf.dat 数据文件,包含柔性扫描中所有优化结构的 SCF 能量.relaxscanact.dat 数据文件,包含柔性扫描中所有优化结构的实际(SCF 或后 HF)能量.properties.txt 包含了计算中一些主要信息的汇总。

3.6. 使用 python 运行 ORCA

安装 orcacal:

pip install orcacal --upgrade

假如你需要在 H2O 文件夹内进行计算:

D:\H2O

│── input.inp

python 代码为:

import orcacal

orcaIns = "D:\hty\ins\ORCA_6" # ORCA 安装目录

input_file_path = 'D:\H2O' # 项目目录

project = orcacal.init(orcaIns, input_file_path) # 初始化计算类

project.run() # 运行

orcacal 的更多使用方法详见后文各案例和 https://github.com/HTY-DBY/orcacal

4. 常用计算

4.1. 几何优化 频率计算

4.2. 单点能计算

4.3. 福井指数计算

4.4. 激发态