使用shermo批量读入ORCA频率计算结果文件,并批量输出热力学校正数据
- 安装与运行
- 简单任务示例
- 批量输出热力学校正数据
Shermo是北京科音自然科学研究中心卢天老师开发的一个程序,可以用来处理量子化学计算过程中的热力学数据。本文基于Shermo程序,对ORCA频率计算的结果进行处理,批量输出热力学校正量。
参考来源
【使用Shermo结合量子化学程序方便地计算分子的各种热力学数据】
【Shermo官方手册】
安装与运行
从Shermo官网http://sobereva.com/soft/shermo/可以下载安装包 Shermo_2.3.6.zip。
解压,如果是在windows系统,双击“Shermo.exe”即可运行。其中可以根据自己的体系特点修改"settings.ini"中的参数设置。
如果是在linux系统运行,在任何目录下,如果想调用shermo(假如:Shermo安装包解压后的路径为/home/Shermo_2.3.6),则输入命令/home/Shermo_2.3.6/Shermo可调用Shermo。为了能同时载入"settings.ini"中的参数设置,可以在脚本文件中添加两行代码,放在运行Shermo的命令前,如:
export PATH=$PATH:/home/Shermo_2.3.6
export Shermopath=/home/Shermo_2.3.6
简单任务示例
因此一份简单的脚本文件(使用默认的"settings.ini"参数设置),其内容可以是(假设脚本文件放在待处理数据文件"POSCAR.out"的当前路径,"POSCAR.out"是ORCA进行opt freq任务后产生的结果文件):
export PATH=$PATH:/home/Shermo_2.3.6
export Shermopath=/home/Shermo_2.3.6
/home/Shermo_2.3.6/Shermo POSCAR.out > POSCAR_Shermo.out
执行后,Shermo会在待处理数据文件的目录下,产生三份文件:POSCAR_Shermo.out,scan_SCq.txt,scan_UHG.txt。后两份文件便有我们所需要的热力学校正量。
批量输出热力学校正数据
基于简单任务的思想,我们可以基于bash命令,使用for循环,实现对多份待处理的数据文件进行遍历,批量输出热力学校正量数据。下面以某一温度区间下批量输出热力学数据为例,展示思路设计及代码示例。
输出温度10-1000K范围内的热力学数据,其核心代码是:
/home/Shermo_2.3.6/Shermo POSCAR.out -T 10,1000,10 > POSCAR_Shermo.out
批量任务,实际就是遍历文件夹,读取out文件,执行核心代码,因此只需要加一个for循环即可,代码示例:
#!/bin/bash
export PATH=$PATH:/home/Shermo_2.3.6
export Shermopath=/home/Shermo_2.3.6
export poscar_dir=/home/test/ #文件夹
out_file=".out"
shermo_name="_shermo"
#下面利用循环实现批量运行
for file in `ls -l ${poscar_dir} |awk '/^d/ {print $NF}'`;do
# 打印文件名
echo "对文件夹${file}执行shermo输出热力学数据..."
# 切换到需要进行实验的目录
cd "${poscar_dir}${file}"
# 运行实验
#shermo
# 查找.out后缀文件
for expname in `ls . | grep .out`;
do
echo "实验文件名:${expname}"
/home/Shermo_2.3.6/Shermo ${expname} -T 10,1000,10 > "${expname%%.*}$shermo_name$out_file"
done
echo "${file}shermo输出热力学数据完成"
cd ..
cd ..
done
echo "所有POSCAR的热力学数据已经生成"
以上便是本文的内容,如果想了解更详细的使用教程,建议直接查阅Shermo官方手册。
参考来源
【使用Shermo结合量子化学程序方便地计算分子的各种热力学数据】
【Shermo官方手册】