正文

最好的富勒烯结构生成程序-CaGe的简便使用方法2007-01-27 20:10:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/elove/22915.html

分享到:

2006-7-28

 

CaGe免费,开源,而且功能十分强大,它应当是目前生成富勒烯结构的首选程序。读完本文,您就可以使用CaGe轻松生成任何你想要的富勒烯结构。

 

关键词:富勒烯(Fullerene),结构(Structure),坐标Coordinate),CaGefullgen,免费软件(FreeSoftware),开源(Open Source

 

目前很难找到一种通用程序,能够生成给定碳原子数目n的所有可能的富勒烯Cn的结构坐标。Sebastian LiskenCJava开发了一套开源软件包名叫CaGehttp://www.mathematik.uni-bielefeld.de/~CaGe/。它主要用来生成各种类型的数学图,其中某些类型与有趣的分子结构密切相关,同时还能够通过不同方式显示这些图形,并能将这些图以多种格式输出成文件。借助于CaGe就能实现我们开头提出的目标-生成我们想要的富勒烯的结构。据程序的作者介绍,CaGe是目前生成富勒烯结构最快最好的软件。然而,目前的CaGe是在Unix图形界面下运行的,而且必须预装有JavaWindows版本可能以后会推出)。因此,对于无法使用图形界面的远程登陆的用户,或者没有安装Java的用户,就无法使用CaGe了。

 

 

经过一些摸索,我发现可以在无Java且无图形界面的情况下使用CaGe生成富勒烯的结构坐标。下面我就来详细介绍一下。

 

1.   安装方法

首先,从CaGe的网站上下载这个软件包CaGe.zip。登陆你的Unix系统(不必是root),然后新建一个文件夹,把CaGe.zip解压进来:

  mkdir cage

  cd cage

  unzip ../CaGe.zip

然后在将其中的CaGe-C.zip解压,就生成了GeneratorsNative连个文件夹:

  cd Generators

进入Generators目录后,就会看到一些*.c的源文件,我们需要将它们编译成可执行文件:

  make

在编译好的一系列可执行文件中,我们需要的只有fullgenembed。下面我就介绍一下如何用这两个程序生成我们想要的富勒烯结构。

 

2.   一个简单实例

例如,我们想得到C60富勒烯的结构。首先,我们用fullgen生成图代码文件:

./fullgen 60 ipr code 6 > codes

其中,60表示60个顶点数,ipr选项表示只生成满足分立五边形规则(IPR)的结构,“code 6”表示生成的图代码类型是“writegraph3d planar”。生成的图代码输出在名叫“codes”的文件中。

运行结果显示为:

Time for generating the patches: 0.0 seconds

Time for case 1 (Jordan-Curve Petrie Path): 0.0 seconds

Time for case 2 (Dumb-bell): 0.0 seconds

Time for case 3 (Sandwich): 0.0 seconds

 

MAPLIST: number of patches: 1783

BBLIST: number of items in list: 105  number of patches: 1122

 

Generated 1 maps on 60 vertices -- reduced to 1 non-isomorphic maps.

 

Total generation time: 0.0 seconds

end of program

可见,生成的满足IPR规则的C60的结构只有一种。

接着,我们用embed程序将图代码文件转成笛卡尔坐标:

./embed -v –d 3 < codes > coord

其中,选项-v表示显示运行细节,选项“-d 3表示生成三维坐标(默认是二维)。生成的坐标输出在名叫“coord”的文件中。

运行结果显示为:

used 167 iterations

average edge length = 0.395682

used 333 iterations

average edge length = 0.090532

used 27 iterations

average edge length = 1.000000

我们用cat查看一下coord文件,就会发现生成的C60富勒烯的直角坐标已保存在其中了:

>>writegraph3d<<

  1    0.645   -3.404   -0.186  18  19   2

  2    0.154   -3.139   -1.470   1   3  40

  3    0.909   -2.371   -2.364   2  32   4

  4    0.028   -1.566   -3.096   3   5  41

  5    0.393   -0.259   -3.437   4  30   6

……

 

3.   更多实例

1) 不限制满足IPR

如果我们不限制满足IPR的结构,那么在运行fullgen时只需要去掉ipr选项就可以了:

./fullgen 60 code 6 > codes

运行结果显示为:

Time for generating the patches: 0.0 seconds

Time for case 1 (Jordan-Curve Petrie Path): 0.2 seconds

Time for case 2 (Dumb-bell): 0.1 seconds

Time for case 3 (Sandwich): 0.3 seconds

 

MAPLIST: number of patches: 6917

BBLIST: number of items in list: 1343  number of patches: 13628

 

Generated 46175 maps on 60 vertices -- reduced to 1812 non-isomorphic maps.

 

Total generation time: 0.6 seconds

end of program

可见,不考虑IPRC60的结构竟有1812种!而生成所有这些结构只需不到1秒的时间!

 

2) 对称性

在运行fullgen时如果加上symstat选项,就可以显示出生成的所有结构的对称性(点群符号),例如:

./fullgen 36 symstat code 6 > codes

结果显示为:

Time for generating the patches: 0.0 seconds

Time for case 1 (Jordan-Curve Petrie Path): 0.0 seconds

Time for case 2 (Dumb-bell): 0.0 seconds

Time for case 3 (Sandwich): 0.0 seconds

 

MAPLIST: number of patches: 350

BBLIST: number of items in list: 46  number of patches: 279

 

Generated 160 maps on 36 vertices -- reduced to 15 non-isomorphic maps.

Symmetries:

  C1 :          2   C2 :          4   Cs :          2   D2 :          2

  C2v:          1   D2d:          2   D3h:          1   D6h:          1

 

Total generation time: 0.0 seconds

end of program

可见C36富勒烯共有15种可能的结构,其中C1对称性的有2个,C24个,Cs2个,D22个,C2v1个,D2d2个,D3h1个,D6h1个。

如果我们只想得到具有特定点群对称性的结构,就可以使用symm选项,后面加上点群名称即可。例如,我们可以生成所有具有C2对称性的C36富勒烯结构:

./fullgen 36 symm C2 code 6 > codes

打开codes文件我们就可以看到4种结构的图代码。

 

3) 设定顶点数的起止范围

比如,我们想知道在碳原子数目在100以内的所有满足IPR的富勒烯的有哪些,就可以使用如下命令:

./fullgen 100 ipr start 20 code 6 > codes

这里的“start 20”表示从20个顶点数开始构造,注意最小的富勒烯的顶点数是20

结果显示为:

Time for generating the patches: 0.3 seconds

Time for case 1 (Jordan-Curve Petrie Path): 0.3 seconds

Time for case 2 (Dumb-bell): 5.0 seconds

Time for case 3 (Sandwich): 2.3 seconds

 

MAPLIST: number of patches: 43751

BBLIST: number of items in list: 7327  number of patches: 109530

 

Generated 0 maps on 20 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 22 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 24 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 26 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 28 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 30 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 32 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 34 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 36 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 38 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 40 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 42 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 44 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 46 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 48 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 50 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 52 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 54 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 56 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 58 vertices -- reduced to 0 non-isomorphic maps.

Generated 1 maps on 60 vertices -- reduced to 1 non-isomorphic maps.

Generated 0 maps on 62 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 64 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 66 vertices -- reduced to 0 non-isomorphic maps.

Generated 0 maps on 68 vertices -- reduced to 0 non-isomorphic maps.

Generated 2 maps on 70 vertices -- reduced to 1 non-isomorphic maps.

Generated 2 maps on 72 vertices -- reduced to 1 non-isomorphic maps.

Generated 3 maps on 74 vertices -- reduced to 1 non-isomorphic maps.

Generated 15 maps on 76 vertices -- reduced to 2 non-isomorphic maps.

Generated 40 maps on 78 vertices -- reduced to 5 non-isomorphic maps.

Generated 47 maps on 80 vertices -- reduced to 7 non-isomorphic maps.

Generated 124 maps on 82 vertices -- reduced to 9 non-isomorphic maps.

Generated 269 maps on 84 vertices -- reduced to 24 non-isomorphic maps.

Generated 412 maps on 86 vertices -- reduced to 19 non-isomorphic maps.

Generated 822 maps on 88 vertices -- reduced to 35 non-isomorphic maps.

Generated 1002 maps on 90 vertices -- reduced to 46 non-isomorphic maps.

Generated 2189 maps on 92 vertices -- reduced to 86 non-isomorphic maps.

Generated 4126 maps on 94 vertices -- reduced to 134 non-isomorphic maps.

Generated 5001 maps on 96 vertices -- reduced to 187 non-isomorphic maps.

Generated 7796 maps on 98 vertices -- reduced to 259 non-isomorphic maps.

Generated 14661 maps on 100 vertices -- reduced to 450 non-isomorphic maps.

 

Total generation time: 8.0 seconds

end of program

可见,碳原子数目在70以内的所有富勒烯中,只有C60C70满足IPR规则。这就是为什么当初发现C60时人们只检测到了C60C70的质谱信号。

 

4) 安静模式

在运行fullgen的命令行中加入quiet选项,就可以不输出额外信息:

./fullgen 70 ipr quiet code 6 > codes

 

总之,CaGe免费,开源,而且功能十分强大,它应当是目前生成富勒烯结构的首选程序。它还有很多有趣的功能,在此我就暂不介绍了,大家可以自行摸索。

 

 

 

阅读(5231) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册