24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2025级博士研究生招生报考通知
查看: 14344  |  回复: 70
【奖励】 本帖被评价35次,作者csfn增加金币 30.25
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

csfn

荣誉版主 (知名作家)


[资源] 用Material Studio构建复杂模型及转换成poscar的2种方法

此帖已被多个论坛、博客转载,但原创就为此帖。相信大家读后会有所受益!
今后如有转载,请注明作者及来源


前面有xinjiang介绍一个用Material Studio构建表面模型(zz)”的帖子,我发现做表面的还不少。这里我也给大家介绍一点经验,简单点表面构建法前面介绍了,那么这里我介绍“用Material Studio构建稍微复杂的表面模型”。这里介绍的是构造一个根号3x2pt(111)表面。
用MS Modeling制作slab模型结构图
1, 打开MS modeling,建立一个项目,如test;
2, 右击test项目,在下拉菜单中选择import,在弹出的菜单中选择Structures/metals/pure-metals/Pt;
3, 在主菜单中的Build选择surfaces/Cleave surface,
4, 在弹出的菜单中处理数据
(i)在surface box界面下
a)你所要做的表面,如[111];  也就是将cleave plane [h k l]修改成 [1 1 1];
b) 修改深度,即将depth修改成你所需要的原子层数, 如4;
(ii)在options界面下
将Orientation standard选项改成U矢量沿x轴方向,V在xy平面
(iii)在surface Mesh的界面下
修改U,V矢量。
如保持U不变,将V矢量修改成 0.5 0.5 -1
5,点击cleave,产生一个[1 1 1]的表面模型,
6,在主菜单中的Build选择Crystals/Build Vaccum Slab
7,在弹出的菜单中修改相应的参量,比如将真空厚度修改成14angstrom, 点击build产生一个Slab模型;
8,在主菜单中的Build选择Symmetry/supercell,将单胞修改成你所需要的大小,如将A修改成2,点击Create supercell
这样产生了你所要的表面
在该表面,你可以非常简单的看出hcp与fcc的差别,以及top,bridge位置。


如果你需要产生vasp的poscar文件,那么你可以从ms模块导出这个文件为.car文件(它是卡迪尔坐标),简单进行处理下就变成vasp了。
比如我这里有个。car坐标:
引用回帖:
!BIOSYM archive 3
PBC=2D
Materials Studio Generated CAR File
!DATE Thu Nov 16 09:42:17 2006
PBC    11.5352    4.9949   90.0000(p 1)
Au1      0.000000000    2.679917131   -2.354607603 XXXX 1      xx      Au  0.000
Au2      5.767587171    2.679917131   -2.354607603 XXXX 1      xx      Au  0.000
Au3      2.883793586    2.679917131   -2.354607603 XXXX 1      xx      Au  0.000
Au4      8.651380757    2.679917131   -2.354607603 XXXX 1      xx      Au  0.000
Au5      1.441896793    0.182478626   -2.354607603 XXXX 1      xx      Au  0.000
Au6      7.209483964    0.182478626   -2.354607603 XXXX 1      xx      Au  0.000
Au7      4.325690379    0.182478626   -2.354607603 XXXX 1      xx      Au  0.000
Au8     10.093277550    0.182478626   -2.354607603 XXXX 1      xx      Au  0.000
Au9      1.441896793    1.847437629    0.000000000 XXXX 1      xx      Au  0.000
Au10     7.209483964    1.847437629    0.000000000 XXXX 1      xx      Au  0.000
Au11     4.325690379    1.847437629    0.000000000 XXXX 1      xx      Au  0.000
Au12    10.093277550    1.847437629    0.000000000 XXXX 1      xx      Au  0.000
Au13     0.000000000    4.344876134   -0.000000000 XXXX 1      xx      Au  0.000
Au14     5.767587171    4.344876134    0.000000000 XXXX 1      xx      Au  0.000
Au15     2.883793586    4.344876134    0.000000000 XXXX 1      xx      Au  0.000
Au16     8.651380757    4.344876134    0.000000000 XXXX 1      xx      Au  0.000
end
end

要转换成vasp,下面贴出我的程序是:
CODE:
parameter(nsum=16,nsun=0,n=16)
real x(n),y(n),z(n)
real lx(3),ly(3),lz(3)
real lattice
character p
character*18 selective
character*6 direct

lx=0.0
ly=0.0
lz=0.0
lattice=4.64
lx(1)=  11.8800/lattice
ly(2)= 6.5761/lattice
lz(3)= 15.8554/lattice       



open(1,file="Au (1 1 1) (4).car")
do i=1,5
read(1,*)
enddo
do i=1,n
read(1,*)p,x(i),y(i),z(i)
enddo
do i=1,2
read(1,*)
enddo
close(1)
open(2,file="POSCAR")
write(2,*)"rutile.TiO2(110)"
write(2,15)lattice
15 format(f15.8)
write(2,16)lx
write(2,16)ly
write(2,16)lz
16 format(3f15.8)
write(2,17)nsum,nsun
17 format(2I5)
Selective="Selective dynamics"
direct="direct"
write(2,171)Selective
write(2,172)"direct"
171 format(A18)
172 format(A6)
do i=1,n
write(2,18)x(i)/lx(1)/lattice,y(i)/ly(2)/lattice,z(i)/lz(3)/lattice
18 format(3f15.8,"   T   T   T")
enddo

close(2)
end

那么产生的poscar文件:
引用回帖:
rutile.TiO2(110)
     4.64000000
     2.56034500      .00000000      .00000000
      .00000000     1.41726300      .00000000
      .00000000      .00000000     3.41711200
   16    0
Selective dynamics
direct
      .00000000      .40752380     -.14850510   T   T   T
      .48548710      .40752380     -.14850510   T   T   T
      .24274360      .40752380     -.14850510   T   T   T
      .72823070      .40752380     -.14850510   T   T   T
      .12137180      .02774876     -.14850510   T   T   T
      .60685890      .02774876     -.14850510   T   T   T
      .36411530      .02774876     -.14850510   T   T   T
      .84960250      .02774876     -.14850510   T   T   T
      .12137180      .28093210      .00000000   T   T   T
      .60685890      .28093210      .00000000   T   T   T
      .36411530      .28093210      .00000000   T   T   T
      .84960250      .28093210      .00000000   T   T   T
      .00000000      .66070720      .00000000   T   T   T
      .48548710      .66070720      .00000000   T   T   T
      .24274360      .66070720      .00000000   T   T   T
      .72823070      .66070720      .00000000   T   T   T



如果觉得有用的话,大家就拍下砖啊,让更多的同志们能探讨和学习表面构建.支持下我的呕心原创 ^_^!


第二种构建poscar进阶方法,可构建高指数面,纳米线管等复杂结构
在ms模块中搭建好所需要的的结构,然后点一个模块比如castep下拉菜单中的“calcualtion”,出现一个菜单,在该菜单最下方出现三个选项,run,files,help,我们选择点击“files”,然后点击“save files”。这个时候你建立的结构就会默认保存在项目下。你到项目下打开你保存的文件。会看到一个*.cell文件,如果看不到,你就到工具栏下设置下显示隐藏的文件,*.cell是隐藏的文件。打开这个cell文件,你会看到前面是坐标文件,比如:
CODE:
%BLOCK LATTICE_CART
       2.555294556406364      -1.475300000000001       0.000000000000000
       0.000000000000000       2.950600000000000       0.000000000000000
       0.000000000000000       0.000000000000000       4.678800000000000
%ENDBLOCK LATTICE_CART

%BLOCK POSITIONS_FRAC
Ti   0.3333333333333334   0.6666666666666667   0.2500000000000000
Ti  -0.3333333333333334  -0.6666666666666667   0.7500000000000001
%ENDBLOCK POSITIONS_FRAC

%BLOCK KPOINTS_LIST
  -0.5000000000000000  -0.5000000000000000   0.4166666666666666       0.010000000000000
  -0.5000000000000000  -0.5000000000000000   0.2500000000000000       0.010000000000000
  -0.5000000000000000  -0.5000000000000000   0.0833333333333333       0.010000000000000
  -0.5000000000000000   0.4000000000000000   0.4166666666666666       0.040000000000000
  -0.5000000000000000   0.4000000000000000   0.2500000000000000       0.040000000000000
  -0.5000000000000000   0.4000000000000000   0.0833333333333333       0.040000000000000

cell文件第2行到第5行的数字显示的是晶格矢量,对应就是poscar前面的第3行到第6行的基矢量,不过这个时候poscar的第二行的晶格常熟要设置为1,因为cell文件的晶格矢量包含了晶格常数进去了。
cell文件第7行空格,第8行显示说是坐标了,而且是分数坐标,呵呵,很清楚了,在poscar的基矢量接着写下“direct”,表示是分数坐标,然后把cell文件第9行到第10行(这里是针对我给出的简单例子只有2个原子,多原子的类推就可以了)copy到poscar下就可以了。

一个poscar就完成了!就算很复杂的结构比如高指数表面,纳米线,纳米管,使用这种方法构建,非常简单!不过以上方法都是我个人摸索出来的,是否可行,有待大家评点!
对于很多纳米结构,比如纳米碳管,不管什么类型的管,现在高版本的ms都可以直接输出。特别很方便,大家也可以看看。

欢迎拍砖!



[ Last edited by woshilsh on 2009-6-13 at 22:12 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nodding

木虫 (小有名气)


csfn(金币+0,VIP+0):你这个没问题,不同的表示方式而已。如果你第一个文件导出来是卡迪尔坐标就和下面的这个输出文件基本一样了
请教各位, 我把结构建模后导出.cif 文件,可以看到a,b,c ,基矢,各个原子坐标。

但发现在计算后的输出文件,a,b,c和各个原子坐标,但明显不同啊,谁能解释一下。
下边给出例子:

通过结构建模后导出的:
_cell_length_a                    9.6101
_cell_length_b                    9.6101
_cell_length_c                    4.2600
_cell_angle_alpha                 90.0000
_cell_angle_beta                  90.0000
_cell_angle_gamma                 120.0000
loop_
_atom_site_label
_atom_site_type_symbol
_atom_site_fract_x
_atom_site_fract_y
_atom_site_fract_z
_atom_site_U_iso_or_equiv
_atom_site_adp_type
_atom_site_occupancy
C1     C     0.86904   0.74809   0.47051   0.00000  Uiso   1.00
C2     C     0.86904   0.74809   0.80385   0.00000  Uiso   1.00
C3     C     0.81286   0.83747   0.97051   0.00000  Uiso   1.00
C4     C     0.81286   0.83747   0.30385   0.00000  Uiso   1.00
C5     C     0.70904   0.87547   0.47051   0.00000  Uiso   1.00
C6     C     0.70904   0.87547   0.80385   0.00000  Uiso   1.00
C7     C     0.57341   0.85630   0.97051   0.00000  Uiso   1.00
C8     C     0.57341   0.85630   0.30385   0.00000  Uiso   1.00
C9     C     0.42659   0.78290   0.47051   0.00000  Uiso   1.00
C10    C     0.42659   0.78290   0.80385   0.00000  Uiso   1.00
C11    C     0.29096   0.66642   0.97051   0.00000  Uiso   1.00
C12    C     0.29096   0.66642   0.30385   0.00000  Uiso   1.00
C13    C     0.18714   0.52461   0.47051   0.00000  Uiso   1.00
C14    C     0.18714   0.52461   0.80385   0.00000  Uiso   1.00
C15    C     0.13096   0.37905   0.97051   0.00000  Uiso   1.00
C16    C     0.13096   0.37905   0.30385   0.00000  Uiso   1.00
C17    C     0.13096   0.25191   0.47051   0.00000  Uiso   1.00
C18    C     0.13096   0.25191   0.80385   0.00000  Uiso   1.00
C19    C     0.18714   0.16253   0.97051   0.00000  Uiso   1.00
C20    C     0.18714   0.16253   0.30385   0.00000  Uiso   1.00
C21    C     0.29096   0.12453   0.47051   0.00000  Uiso   1.00
C22    C     0.29096   0.12453   0.80385   0.00000  Uiso   1.00
C23    C     0.42659   0.14370   0.97051   0.00000  Uiso   1.00
C24    C     0.42659   0.14370   0.30385   0.00000  Uiso   1.00
C25    C     0.57341   0.21710   0.47051   0.00000  Uiso   1.00
C26    C     0.57341   0.21710   0.80385   0.00000  Uiso   1.00
C27    C     0.70904   0.33358   0.97051   0.00000  Uiso   1.00
C28    C     0.70904   0.33358   0.30385   0.00000  Uiso   1.00
C29    C     0.81286   0.47539   0.47051   0.00000  Uiso   1.00
C30    C     0.81286   0.47539   0.80385   0.00000  Uiso   1.00
C31    C     0.86904   0.62095   0.97051   0.00000  Uiso   1.00
C32    C     0.86904   0.62095   0.30385   0.00000  Uiso   1.00





计算后生成的文件.outmol
INCOOR, atomic coordinates in au (for archive):
______________________________________________________________________>8

$cell vectors
             18.16045572284231    0.00000000000000    0.00000000000000
             -9.08022786142115   15.72741600028393    0.00000000000000
              0.00000000000000    0.00000000000000    8.05023271134622
$coordinates
C             8.98932562197133   11.76556041811238    3.78774915737165
C             8.98932562197133   11.76556041811238    6.47116006115372
C             7.15747396388918   13.17118963479853    7.81286551304476
C             7.15747396388918   13.17118963479853    2.44604370548062
C             4.92715269775326   13.76880241690058    3.78774915737165
C             4.92715269775326   13.76880241690058    6.47116006115372
C             2.63790801784829   13.46741763646759    7.81286551304476
C             2.63790801784829   13.46741763646759    2.44604370548062
C             0.63825667418291   12.31291839608169    3.78774915737165
C             0.63825667418291   12.31291839608169    6.47116006115372
C            -0.76737254061351   10.48106673799954    7.81286551304476
C            -0.76737254061351   10.48106673799954    2.44604370548062
C            -1.36498532271557    8.25074546997390    3.78774915737165
C            -1.36498532271557    8.25074546997390    6.47116006115372
C            -1.06360054228257    5.96150079006892    7.81286551304476
C            -1.06360054228257    5.96150079006892    2.44604370548062
C             0.09089869810333    3.96184944829327    3.78774915737165
C             0.09089869810333    3.96184944829327    6.47116006115372
C             1.92275035618548    2.55622023349685    7.81286551304476
C             1.92275035618548    2.55622023349685    2.44604370548062
C             4.15307162232139    1.95860744950507    3.78774915737165
C             4.15307162232139    1.95860744950507    6.47116006115372
C             6.44231630222636    2.25999222993806    7.81286551304476
C             6.44231630222636    2.25999222993806    2.44604370548062
C             8.44196764589175    3.41449147032396    3.78774915737165
C             8.44196764589175    3.41449147032396    6.47116006115372
C             9.84759686068817    5.24634313029584    7.81286551304476
C             9.84759686068817    5.24634313029584    2.44604370548062
C            10.44520964279022    7.47666439643175    3.78774915737165
C            10.44520964279022    7.47666439643175    6.47116006115372
C            10.14382486235722    9.76590907633673    7.81286551304476
C            10.14382486235722    9.76590907633673    2.44604370548062
$end
______________________________________________________________________>8


N_atoms =   32     N_atom_types =  1
36楼2008-05-23 23:16:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 71 个回答

cometring

木虫 (著名写手)


★★★★★ 五星级,优秀推荐

强!学习一下!
2楼2007-12-03 22:50:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

eboat

木虫 (小有名气)


★★★★★ 五星级,优秀推荐

多谢,有个问题想请教!
我也是用ms构建模型,但一般都用默认u,v的默认设置.

(ii)在options界面下
将Orientation standard选项改成U矢量沿x轴方向,V在xy平面
(iii)在surface Mesh的界面下
修改U,V矢量。
如保持U不变,将V矢量修改成 0.5 0.5 -1

你这里面u,v设置有什么特别意义,能否详细讲解里面的u,v相关参数的意思及设置技巧,多谢?
6楼2007-12-06 12:46:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csfn

荣誉版主 (知名作家)


★ ★ ★
spur(金币+3,VIP+0):谢谢贡献经验!!
引用回帖:
Originally posted by eboat at 2007-12-6 12:46:
多谢,有个问题想请教!
我也是用ms构建模型,但一般都用默认u,v的默认设置.

(ii)在options界面下
将Orientation standard选项改成U矢量沿x轴方向,V在xy平面
(iii)在surface Mesh的界面下
修改U,V矢量 ...

这里设置确实有一些含义在里面。默认构造出来的面是1x1,当然是可以的。我这里主要是我要构造出一个非1x1,带根号的面,所以要修改U,V。我这个修改参数就是可以得出我文中需要的的面了。具体什么意义,我说不清楚。由于不用ms算,我并没仔细读过说明书,只是拿着软件摆弄出我需要的结构而已。当时是仔细观察每修改u,v结构都会怎么变化 :-)  
“(ii)在options界面下
将Orientation standard选项改成U矢量沿x轴方向,V在xy平面”  这一步一般影响不大,但是这步(iii)很重要,数字改变,方向,大小都改变,你试试就明白了,也不是任何数字都可以的
7楼2007-12-06 16:06:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复(可上传附件)
信息提示
请填处理意见