Gaussian的cube文件
(2014-11-13 21:42:14)
标签:
股票 |
分类: Gaussian |
Gaussian提供了cubegen工具,以及cube、prop选项可以得到格点文件。缺点是数据点没有对应的坐标信息,而且也无法提取某个平面的数据作图。
gsgrid这个程序主要有两个功能,第一个是把格点文件的数据提取出来,显示每个数据点的坐标。第二个功能是选取指定的XY/YZ/XZ平面,得到这个平面上的数据点以便做图。
例1:得到空间中每个坐标点的静电势
用高斯计算某个体系,写明%chk,然后用formchk将chk转换为fch,例如1.fch,再用cubegen得到静电势的格点文件
cubegen 0 potential
1.fch 1.cub 0 h
运行gsgrid,比如输入
c:\1.cub
1
即得到output.txt。里面包含1.cub里每个数据点的数值及其坐标
例2:画Z=0平面的电子密度图
同上,cubegen 0 density 1.fch 1.cub -4 h,
运行gsgrid,输入
c:\1.cub
2
0
得到output.txt,和例1一样,但这里面的数据点只包含.cub中的Z值最接近于0的那个平面中的数据点。然后可以放到sigmaplot等软件做图。以苯分子为例子(压缩包内1.fch),以此法作图得到benzene-density.PNG
(见此贴附图)。(其实VMD读入.cub后用VolumeSlice模式也可以得到同样的结果,但是这样的图不“严谨”)
再比如想得到X=1.3的YZ平面上的数据点,就输入3 [回车] 1.3
注意:
使用cubegen时,末尾一定要用h参数。
cubegen倒数第二个参数可以是-2,-3 和-4
分别对应于关键字Coarse,Medium
和Fine。用了fine文件会很大,gsgrid读取也比较慢,但相应地数据点更精细。若设为0为每个边80个数据点。
如果想得到某个分子轨道的数据点,比如cubegen 0 mo=15 1.fch 1.cub 0
h。注意mo=后面不要接多个轨道,应当只指定一个,否则gsgrid可能处理出错。
生成的格点文件不要对内容手动进行任何修改。
这里顺便介绍下Gaussian格点文件格式
例如水的静电势的格点文件
Title Card Required potenial
Electrostatic potential from Total SCF Density //顾名思义
......
这些数据点数据输出的循环次序是:最低维=第三个“坐标轴”(此例即是Z轴),中维=第二个“坐标轴”,最高维=第一个“坐标轴”。
数据点与其对应的坐标关系是:
a(i,j,k)%x=originx+trans1x*(i-1)+trans2x*(j-1)+trans3x*(k-1)
a(i,j,k)%y=originx+trans1y*(i-1)+trans2y*(j-1)+trans3y*(k-1)
a(i,j,k)%z=originz+trans1z*(i-1)+trans2z*(j-1)+trans3z*(k-1)
trans1/x/y/z代表第一个“坐标轴”三个分量,(或曰:格点的平移矢量)
trans2/x/y/z代表第二个“坐标轴”三个分量
trans3/x/y/z代表第三个“坐标轴”三个分量
originx/y/z代表原点位置
i、j、k代表某点在各个“坐标轴”上的数据点序号。
如果用cubegen默认设置,一、二、三号坐标轴实际上就相当于笛卡尔坐标轴X/Y/Z,彼此正交。
如果手动设置网格,可以自定义“坐标轴”的方向,不平行于笛卡尔坐标轴,但这种情况gsgrid只能提取全部数据点(第一个功能),不能提取指定平面的数据点。
也可以用cube、prop关键字生成格点文件,参见高斯手册,格式与cubegen生成的一样,但更建议使用cubegen来做。