如何用python和shell做理论计算

心血来潮想写一篇帖子,一来是想总结下最近的收获,二来也想与各位相互探讨一下

初识python是因为课题组需求,对具有不同尺度和构型的富勒烯进行半经验的结构优化。
前处理(也就是生成输入文件)及后处理(提取能量及排序)主要使用open方法去读写文件,另外就是需要学习正则表达式,利用的是re库的findall方法,以便准确找到输出文件中的能量;

中间的计算过程是在linux操作系统下进行的,使用的是shell语言,调用Gaussian。比起python,shell语言更容易上手,很少的代码量就能执行很复杂的功能,我给出几个常用的命令:

cd    进入某一目录

sed    修改、删除、添加文件中指定行的内容
grep    用来搜索指定文件的指定字符串,输出包含字符串的行

awk    指定分隔符(比如空格,abc,123)分隔指定的行(可以是grep输出的行),输出特定位置的字符串

for循环或which循环

if判断

>文件重定向

>>文件追加

|    管道,上一个命令的输出作为下一条命令的输入,常用做法:grep 字符串 文件名 | awk -F '[,]' '{print $1,$2,$5}'  此命令的含义是先grep一个文件找到包含字符串的所有行,然后在这些行中以,为分隔符将行分为多个段,最后输出第1、2、5段的字符

 

python由于可以使用第三方库,使得其使用领域极为宽泛,这里针对计算化学,我推荐几个常用且好用库

pymatgen    可以用于vasp、gaussian、abinit、lammps、QE等多个模拟软件的输入生成和后处理,其中针对vasp的后处理极为全面,建模和后处理功能极其强大。pymatgen.analysis.defects package — pymatgen 2022.0.8 documentation

openbabel    用于分子结构的建模或可视化,甚至包含类似gaussian、MS的clean功能,即利用分子力场(uff、mmff94、guff等)快速优化结构,用分配了2核4g内存的虚拟机优化一个80原子左右的结构用时0.03s,另外还支持结构转smiles及smiles转结构功能,安装此库需要限制python版本为3.7以下。Python — Open Babel v2.3.1 documentation

RDkit    功能上类似于openbabel,个人认为openbabel好用,弊端是此包解析gaussian和MS生成的mol文件会出错,此包生成的mol文件与前者格式不同。The RDKit Documentation — The RDKit 2021.03.1 documentation

ase    提供了非常多计算软件的接口,几乎包含了所有主流模拟计算软件,另外自身也包含了BFGS等优化算法以及四个简陋的calculator,多数用不上,主要是利用其接口。Atomic Simulation Environment — ASE documentation (dtu.dk)

moapc    此包是软件mopac的接口,主要功能是利用半经验方式优化结构,没有动力学功能,也就是说无法利用成键信息(mol文件)优化结构。

目前先整理这么多,后续再做继续补充吧

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值