【Multiwfn学习】-Multiwfn批量读入xyz结构文件并生成ORCA输入文件「建议收藏」

【Multiwfn学习】-Multiwfn批量读入xyz结构文件并生成ORCA输入文件「建议收藏」在科研过程中,有时需要计算大批量的同类结构,过程中涉及很多重复操作

Multiwfn

在科研过程中,有时需要计算大批量的同类结构,过程中涉及很多重复操作。因此借助一些工具将重复的任务智能化,是一个非常理智的选择。
在这里插入图片描述

Multiwfn是由北京科音自然科学研究中心的卢天从2009年11月起主导开发的最为强大的量子化学波函数分析程序,功能极为广泛、十分高效、非常易于使用,并且开源免费。
本文主要使用Multiwfn产生ORCA量子化学程序的输入文件的功能。

任务思路

在这里插入图片描述
在Multiwfn3.8使用手册的5.2,5.3有介绍使用multiwfn处理大批量任务的一些技巧示例。
卢老师也写过非常详细的博文介绍:详谈Multiwfn的命令行方式运行和批量运行的方法
因此,在此基础上,融合本人任务需要,分享使用Multiwfn批量产生ORCA输入文件的脚本。

Multiwfn产生ORCA输入文件过程

首先需要知道通过Multiwfn是如何生成ORCA输入文件的,整个过程需要输入什么信息。在此,先记录手动在命令行输入命令产生ORCA输入文件的过程

  1. 打开Multiwfn,进入导入文件界面,按回车,输入文件
  2. 输入主功能:100,回车确认
  3. 进一步选择子功能:2,回车确认
  4. 选择选项:12,回车确认
  5. 继续回车确认,默认命名等下产生ORCA输入文件的文件名
  6. 进入ORCA输入文件的条件选择界面,界面信息见下:
    在这里插入图片描述
  7. 接下来根据自己的ORCA计算条件,依次选择选项设置输入文件信息。比如,我需要进行几何优化任务,服务器运算条件为48核,3000M/核,计算的泛函与基组选择BLYP, def2-TZVP。因此我需要依次选择选项:-10,0,2选项进行设置
  8. 设置计算条件,选择选项:-10,回车确认,输入48,回车确认,输入3000,回车确认
  9. 设置计算任务,选择选项:0,回车确认,输入2,回车确认
  10. 设置计算方法,选择选项:2,回车确认。便在输入文件的当前目前下产生了ORCA的输入文件
  11. 退出Multiwfn,输入:q,回车确认

使用脚本实现Multiwfn生成ORCA输入文件

当我们熟悉Multiwfn产生ORCA输入文件的流程后,便可以将该过程用到的命令写入脚本,并结合for循环,实现批量生成任务。

以上任务的例子,用shell语言可以简化为:
echo -e "100\n2\n12\n\n0\n2\n-10\n48\n2000\n2\nq\n" | Multiwfn POSCAR.xyz > POSCAR.out"
这里100\n2\n12\n\n0\n2\n-10\n48\n2000\n2\nq\n是被传递给Multiwfn的指令,数字表示选项/功能,\n表示回车确认。POSCAR.xyz为Multiwfn读入的文件,用POSCAR.out记录Multiwfn产生ORCA输入文件过程中在屏幕上输出的信息。

下面结合for循环,将该过程写入脚本文件,便可以执行Multiwfn批量生成ORCA输入文件的任务。

#!/bin/bash
export poscar_dir=./2_C53N_str_1e-3_opt_xtb/  #文件夹
out_file="out"
#下面利用循环实现批量运行,此部分代码适合用于实验文件夹名字与文件夹内xyz文件名字不相同的情况
for file in `ls -l ${ 
   poscar_dir} |awk '/^d/ {print $NF}'`;do
    # 打印文件名
    echo "对文件夹${file}执行multiwfn输出orca输出文件..."
    # 切换到需要进行实验的目录
    cd "${poscar_dir}${file}"
    # 运行实验
    #multiwfn
    # 查找.xyz后缀文件
    for expname in `ls . | grep .xyz`;
        do
            echo "实验文件名:${expname}"
            echo -e "100\n2\n12\n\n0\n2\n-10\n48\n2000\n2\nq\n" | Multiwfn ${ 
   expname} > "${expname%%xyz*}$out_file"
        done
    echo "${file}ORCA输出文件生成完成"
    cd ..
    cd ..  
done
echo "所有POSCAR的ORCA输出文件已经生成"

以上代码,可以实现下面的过程。
在这里插入图片描述

今天的文章【Multiwfn学习】-Multiwfn批量读入xyz结构文件并生成ORCA输入文件「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/85094.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注