量子化学计算模块¶
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