CUBE
cube文件包含了标题、平移矢量、原子坐标、格点数据这四个段落。记录的是标量数据,每个格点位置上只有一个数值。但还有一种特殊的cube文件,它多了分子轨道编号段落,允许在格点数据段落同时记录多条分子轨道波函数数值。 下面通过一个水分子的cube文件的开头部分来介绍具体格式。注意所有坐标、平移矢量单位都是bohr而不是埃。
Generated by Multiwfn //标题行,内容任意
Total 531440 grids //标题行,内容任意
3 -6.000000 -7.424912 -6.867160 //原子数(如果是记录分子轨道的cube文件则原子数为负值);格点数据原点的X/Y/Z坐标
73 0.165751 0.000000 0.000000 //第一个平移矢量方向上有73个数据点;平移矢量x,y,z分量
91 0.000000 0.165751 0.000000 //第二个平移矢量方向上有91个数据点;同上
80 0.000000 0.000000 0.165751 //第三个平移矢量方向上有80个数据点;同上
8 8.000000 0.000000 0.000000 0.216790 //第一个原子的原子序号(氧);原子核的有效电荷数(等于实际计算时原子的电子数);X/Y/Z坐标。注意在使用赝势的时候由于一部分内核电子和核电荷的效果被赝势所代替,因此原子核的有效电荷数将小于原子序数
1 1.000000 0.000000 1.424912 -0.867160 //第二个原子的原子序号(氢);同上
1 1.000000 0.000000 -1.424912 -0.867160 //第三个原子的原子序号(氢);同上
//若是分子轨道cube文件(原子数为负值),这里会有分子轨道信息。第一个数字为此cube文件包含的分子轨道的数目,接下来是每个分子轨道的序号。比如此处有一行3 1 5 7就代表cube文件含3个分子轨道,分别是1、5、7号MO。分子轨道信息内容中每10个数字换一行
8.97452E-19 1.68963E-18 3.12519E-18 5.67888E-18 1.01380E-17 1.77805E-17 //每个格点位置上的数值,每六个换一行,1PE13.5格式,后同。
3.06365E-17 5.18606E-17 8.62458E-17 1.40910E-16 2.26177E-16 3.56662E-16
5.52546E-16 8.40976E-16 1.25748E-15 1.84723E-15 2.66590E-15 3.77982E-15
5.26502E-15 7.20496E-15 9.68649E-15 1.27939E-14 1.66014E-14 2.11635E-14
2.65054E-14 3.26125E-14 3.94217E-14 4.68156E-14 5.46196E-14 6.26051E-14
...(直到格点数据写完为止)
假设我们将三个平移矢量的x,y,z分量分别写为v1x, v1y, v1z、v2x, v2y, v2z、v3x, v3y, v3z,把三个平移矢量方向的数据点编号用i,j,k表示,把坐标原点写为orgx,orgy,orgz,那么 (i,j,k)点的x坐标=orgx+(i-1)*v1x+(j-1)*v2x+(k-1)*v3x (i,j,k)点的y坐标=orgy+(i-1)*v1y+(j-1)*v2y+(k-1)*v3y (i,j,k)点的z坐标=orgz+(i-1)*v1z+(j-1)*v2z+(k-1)*v3z
通常使用的cube文件是立方型的,也就是三个平移矢量分别平行于x,y,z轴,正如上面这个cube文件的例子。那么就可以简化写成
(i,j,k)点的x坐标=orgx+(i-1)*v1x (i,j,k)点的y坐标=orgy+(j-1)*v2y (i,j,k)点的z坐标=orgz+(k-1)*v3z
其中i的范围是从1~73,j是1~91,k是1~80。因此,(1,1,1)的位置就是(orgx,orgy,orgz) 格点数据部分记录顺序是先循环k,再循环j,之后循环i。每次将k循环完一遍后,即便那行未满6个数据,也会换一行。
对于记录多条分子轨道的cube文件,其循环顺序和上面一致,但是每个数据值被扩展为nmo个,nmo是记录的分子轨道数目。比如记录了三条分子轨道,则第一次循环k的段落可示意为 MO1(1,1,1) MO2(1,1,1) MO3(1,1,1) MO1(1,1,2) MO2(1,1,2) MO3(1,1,2) MO1(1,1,3) MO2(1,1,3) MO3(1,1,3) MO1(1,1,4) MO2(1,1,4) MO3(1,1,4) ...