zoukankan      html  css  js  c++  java
  • 高斯制作小分子化合物的力场

    第一步:生成高斯的输入文件

    gaussian计算的输入文件可以用antechamber程序直接生成,生成后去掉其中关于几何优化的参数即可将小分子优化后的结构存储为mol2各式,用antechamber程序生成gaussian输入文件,命令如下:
          antechamber -i MOL.mol2 -fi mol2 -o MOL.in -fo gzmat

    第二步: 运行高斯

    这样可以生成MOL.in文件, 运行gaussian计算这个文件,如果发现计算时间过长或者内存不足计算中断,可以修改文件选择小一些的基组。命令如下:

         g03 MOL.in MOL.out     (g09)

    在这儿要插入一个自旋多重度的问题和电荷的问题:

    量子化学中用到的自旋多重度是用来区分一组简并的波函数,这些波函数之间只存在自旋角动量的不同。
    自旋多重度定义为2S+1,其中S是自旋角动量,它与体系内的单电子数(N)相关。S=N/2,所以说到底最简单的判断方法:自旋多重度等于单电子数+1。
    怎们判断体系单电子数需要计算者对自己研究的体系有着深入的了解,这是开展科研的前提,不是偷懒的理由。
    但有一点可以提醒Gaussian初学者,计算体系总电子数时需要加上体系的电荷,这样才不会算错单电子数。
    如果实在无法判断到底有几个单电子,那么根据体系的总电子数,算各种可能情况,找那个能量最低的。
    体系总电子数为偶数:自旋多重度可能是1,3,5,7....
    体系总电子数为奇数:自旋多重度可能是2,4,6,8....
    ===============
    现在介绍自旋多重度=2S+1的由来,没兴趣的略过,有兴趣可以参考。
    大 学的化学书中提到了决定原子中每个电子唯一性的n, l, m, 和m(s)四个量子数,其中这个m(s)就是自旋量子数,理论研究表明它只有两个值,即:+1/2和-1/2,由于现在绝大多数量化计算都是基于原子轨道 线性组合分子轨道的方法,所以此套参数可以扩展到分子体系,只不过换了个说法而已。
    如果一个原子轨道或者分子轨道的两个自旋轨道是充满的,因为其他三个量子数都一样,那么两个自旋量子数可以相互抵消,也就是这个轨道对体系的自旋角动量不产生贡献。
    如 果体系中所有的占据轨道的两个自旋轨道都是充满的,那么整个体系是没有自旋角动量,也就是只有一种自旋状态(没有自旋)。如果体系内有一个占据轨道之占据 了一个自旋轨道,而另一个自旋轨道是空的,那么体系的就分成了两个部分,一部分是没有自旋的全部充满的轨道构成,另一部分就是这个单电子产生的+1/2或 者-1/2的自旋,所以此时体系的自旋多重度是2,如果体系有两个以上的单电子,根据电子排布规则,这些成单的电子优先占据与其他单电子占据的自旋方向一 致的自旋轨道,所以从这个角度来说,这些电子之间的自旋是不能抵消的,而只能累加。这样就导致体系分成了单电子数+1个部分,即全充满的所有轨道是一个部 分,而单占据的每个自旋轨道又是一个独自的部分,体系的自旋多重度就是单电子数+1。
    由于每个单电子产生|1/2|的自旋,那么根据自旋多重度=单电子数+1,自旋多重度也就等于总自旋2*|N*1/2|+1,而绝对值符号中的部分正是体系总自旋角动量的表达式,即S,这也就是自旋多重度=2S+1的由来。

    第三步: 生成mol2模板分子

    获得输出文件MOL.out之后,再用antechamber生成模板,命令如下:
    antechamber -i MOL.out -fi gout -o MOLmod.mol2 -fo mol2 -c resp
    运行之后就会生成一个新的mol2文件,如果用看图软件打开这个文件会发现,原子的颜色很怪异,这是因为mol2的原子名称不是标准的原子名称,看图软件无法识别。下面一步是检查参数,因为可能会有一些特殊的参数在gaff中不存在需要程序注入,
    命令如下:
    parmchk -i MOLmod.mol2 -f mol2 -o MOL.frcmod
    这样那些特殊的参数就存在MOL.frcmod这个文件中了.

    高斯的安装:

    把文件包解压,放在目标目录中/home/F

    设置环境变量:

    export g03root=/home/F/
    source  $g03root/g03/bsd/g03.profile
    export GAUSS_SCRDIR=/tmp/g03

  • 相关阅读:
    c# 泛型(知识整理)
    [VC++]C\C++中结构体知识点强化
    [VC++]CString转化成char
    [VC++]C++中类的多态与虚函数的使用
    [C#]关于自己编写MesasgeBox
    [C#]给DataGridView里的ComboBoxCol添加SelectIndexChange事件
    [C#]用代码触发一个事件
    [C#]序列化例子
    [VC++]怎么使对话框中的按钮DISABLE和ENABLE
    [VC++]控制台程序窗口隐藏
  • 原文地址:https://www.cnblogs.com/yanzhi123/p/3606866.html
Copyright © 2011-2022 走看看