跳转至

量子化学计算模块

Prothod 量子化学计算模块,可快速调用常见的量子化学软件进行量子化学计算。Prothod 预置了成熟的量化计算功能,可以帮助您快速部署和执行计算,将原来数星期到数天的人工时间缩短到几分钟,而无需在量化软件的学习使用和配置上花费时间。

使用本模块需要用户预装 Gaussian、ORCA、DFTB 等计算软件。

支持的量化计算软件简介

Gaussian 软件:可进行半经验计算和从头计算,可以研究能量和结构,偶极矩、红外光谱以及热力学性质等。

ORCA 软件:量子化学软件,采用的密度拟合近似和独有的COSX加速方法,计算速度较快。

DFTB+ 软件:融合了密度泛函方法(DFT) 准确性和紧束缚方法(TB) 高效性的半经验量子力学程序,其计算速度比密度泛函方法快2个量级,可以对数千个原子体系进行模拟研究。

使用方法

量子化学模块可以针对用户提供的初始构型进行批量的计算。用户需要提供初始分子结构 xyz 格式文件。

准备项目

新建一个工作目录,在此目录内运行以下命令初始化一个输入模板。

prothod init qm
该命令会新建输入配置文件 option.txt 和计算的起点 start 文件夹。

.  # 输入的目录结构
├── option.txt
└── start

请把准备好的初始构型文件放在 start 文件夹下面( Prothod 默认批量进行计算,如果只需要计算一个结构,那么只放一个文件即可)。

"option.txt" 文件中指定参数。

修改选项

输入文件 "option.txt" 包含了计算用到的全部参数。一般来说,只需要修改必要的选项即可:

[compute]
[[compute.step]]
# 选择软件: ( Gaussian / ORCA / DFTB )
soft = 'Gaussian'
# 计算用的方法基组等参数 
keyword_line = "# HF/3-21G*"

[option]
# 是否自动清除计算中间过程文件? ( true / false )
clean = true
您还可以修改以下分子输入参数

[param]
# 电荷: 
charge = 0
# 自选多重度:
spinm = 1
# 是否有 "S" ?( true / false )
hasS = false

提交运行计算

prothod sub test 2 20

执行上面命令即可提交计算,sub 后面跟的参数依次代表队列名,使用节点个数,每个节点使用核数。

计算会在当前文件夹下生成若干计算过程文件,最终结果位于在 result 文件夹内。如果不想要保留中间过程文件,可以设置 clean = true,这样在计算完成后会自动删除中间过程文件。

提交前检查

运行以下命令可在提交前进行检查,可以校验输入文件的是否符合格式要求。 对于专业用户,也可以对生成 Recipe 文件进行检查。

prothod gen 

例如指定了不存在的 soft='Hi, Jack' 软件会提示如下错误:

$ prothod gen
输入文件格式错误!!!
Key 'compute' error:
Key 'step' error:
Or({'soft': And(<function check_soft at 0x10528ae60>, Schema(<class 'str'>)), 'keyword_line': Schema(<class 'str'>)}) did not validate {'soft': 'Hi, Jack', 'keyword_line': '# B97D/6-31G* opt'}
Key 'soft' error:
check_soft('Hi, Jack') should evaluate to True
请查看手册检查格式

又例如使用了错误的参数类型 keyword_line=1 会提示如下错误:

$ prothod gen
输入文件格式错误!!!
compute.step 内的 keyword_line 选项应该是字符串
请查看手册检查格式

运行结果

默认 result 文件夹内会保存结果。

.  # 目录结构
├── option.txt
├── recipe.yml
├── result
└── start

$ ls start/  # 初始文件例子
x00211S00000a.xyz  x00211S00202a.xyz  x00211S01121a.xyz  x00211S02110a.xyz  x00211S10022a.xyz  x00211S11011a.xyz  x00211S12000a.xyz  
$ ls result/ # 结果文件例子
x00211S00000a.out  x00211S00202a.out  x00211S01121a.out  x00211S02110a.out  x00211S10022a.out  x00211S11011a.out  x00211S12000a.out  

参考:完整的输入文件

默认的输入文件 "option.txt" 的完整内容如下,供参考:

#! Meta informations for this computation (Don't change it)
cookbook = 'qm'
description = 'Perform a computation using quantum chemistry software'

# ==== compute steps part ===============
[compute]
[[compute.step]]
# Change options here to Specify your computation:
# Specify the computation Software: ( Gaussian / ORCA / DFTB )
soft='Gaussian'
# Compuation method: the head parameters for computation input file 
keyword_line="# HF/3-21G*"

# ---------------------------------------

# ==== global opitions part =============
[option]
# Whether to clean the progress file? ( true / false )
clean = true

# ==== molecule parameters part =========
[param]
# Electric Charge: 
charge = 0
# spin multiplicity
spinm = 1
# If atom "S" exist?( true / false )
hasS = false
所有字段的类型应依照默认文件提供的格式。