加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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 //顾名思义
     -4.970736   -4.970736   -4.761332       //原子数    原点的X/Y/Z坐标
   80    0.125841    0.000000    0.000000       //第一个“坐标轴”上有80个数据点,每个数据点间隔为0.12584
   80    0.000000    0.125841    0.000000       //第二个“坐标轴”
   80    0.000000    0.000000    0.125841       //第三个“坐标轴”
      8.000000    0.000000    0.000000    0.209404      //原子序号(氧),电子数,X/Y/Z坐标
      1.000000    0.000000    1.481500   -0.837616
      1.000000    0.000000   -1.481500   -0.837616
  7.33384E-03  7.33602E-03  7.33151E-03  7.31988E-03  7.30070E-03  7.27354E-03   //每个点的数据,每六个换一行,E13.5格式。如果数据点数不是6的倍数,最低维循环后不足6个数据位置的地方会留空。
  7.23796E-03  7.19353E-03  7.13981E-03  7.07636E-03  7.00279E-03  6.91867E-03
  6.82364E-03  6.71732E-03  6.59939E-03  6.46955E-03  6.32753E-03  6.17312E-03
......
这些数据点数据输出的循环次序是:最低维=第三个“坐标轴”(此例即是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来做。

 

http://happysweetheart1.blog.sohu.com/103227479.html

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有