用MaterialStudio构建复杂模型及转换成poscar的2种方法这里我介绍“用MaterialStudio构建稍微复杂的表面模型”。这里介绍的是构造一个根号3x2的pt(111)表面。用MSModeling制作slab模型结构图1,打开MSmodeling,建立一个项目,如test;2,右击test项目,在下拉菜单中选择import,在弹出的菜单中选择Structures/metals/pure-metals/Pt;3,在主菜单中的Build选择surfaces/Cleavesurface,4,在弹出的菜单中处理数据(i)在surfacebox界面下a)你所要做的表面,如[111];也就是将cleaveplane[hkl]修改成[111];b)修改深度,即将depth修改成你所需要的原子层数,如4;(ii)在options界面下将Orientationstandard选项改成U矢量沿x轴方向,V在xy平面(iii)在surfaceMesh的界面下修改U,V矢量。如保持U不变,将V矢量修改成0.50.5-15,点击cleave,产生一个[111]的表面模型,6,在主菜单中的Build选择Crystals/BuildVaccumSlab7,在弹出的菜单中修改相应的参量,比如将真空厚度修改成14angstrom,点击build产生一个Slab模型;8,在主菜单中的Build选择Symmetry/supercell,将单胞修改成你所需要的大小,如将A修改成2,点击Createsupercell这样产生了你所要的表面在该表面,你可以非常简单的看出hcp与fcc的差别,以及top,bridge位置。如果你需要产生vasp的poscar文件,那么你可以从ms模块导出这个文件为.car文件(它是卡迪尔坐标),简单进行处理下就变成vasp了。比如我这里有个。car坐标:Quote:!BIOSYMarchive3PBC=2DMaterialsStudioGeneratedCARFile!DATEThuNov1609:42:172006PBC11.53524.994990.0000(p1)Au10.0000000002.679917131-2.354607603XXXX1xxAu0.000Au25.7675871712.679917131-2.354607603XXXX1xxAu0.000Au32.8837935862.679917131-2.354607603XXXX1xxAu0.000Au48.6513807572.679917131-2.354607603XXXX1xxAu0.000Au51.4418967930.182478626-2.354607603XXXX1xxAu0.000Au67.2094839640.182478626-2.354607603XXXX1xxAu0.000Au74.3256903790.182478626-2.354607603XXXX1xxAu0.000Au810.0932775500.182478626-2.354607603XXXX1xxAu0.000Au91.4418967931.8474376290.000000000XXXX1xxAu0.000Au107.2094839641.8474376290.000000000XXXX1xxAu0.000Au114.3256903791.8474376290.000000000XXXX1xxAu0.000Au1210.0932775501.8474376290.000000000XXXX1xxAu0.000Au130.0000000004.344876134-0.000000000XXXX1xxAu0.000Au145.7675871714.3448761340.000000000XXXX1xxAu0.000Au152.8837935864.3448761340.000000000XXXX1xxAu0.000Au168.6513807574.3448761340.000000000XXXX1xxAu0.000endend要转换成vasp,下面贴出我的程序是:CODE:[Copytoclipboard]parameter(nsum=16,nsun=0,n=16)realx(n),y(n),z(n)reallx(3),ly(3),lz(3)reallatticecharacterpcharacter*18selectivecharacter*6directlx=0.0ly=0.0lz=0.0lattice=4.64lx(1)=11.8800/latticely(2)=6.5761/latticelz(3)=15.8554/latticeopen(1,file=Au(111)(4).car)doi=1,5read(1,*)enddodoi=1,nread(1,*)p,x(i),y(i),z(i)enddodoi=1,2read(1,*)enddoclose(1)open(2,file=POSCAR)write(2,*)rutile.TiO2(110)write(2,15)lattice15format(f15.8)write(2,16)lxwrite(2,16)lywrite(2,16)lz16format(3f15.8)write(2,17)nsum,nsun17format(2I5)Selective=Selectivedynamicsdirect=directwrite(2,171)Selectivewrite(2,172)direct171format(A18)172format(A6)doi=1,nwrite(2,18)x(i)/lx(1)/lattice,y(i)/ly(2)/lattice,z(i)/lz(3)/lattice18format(3f15.8,TTT)enddoclose(2)end那么产生的poscar文件:Quote:rutile.TiO2(110)4.640000002.56034500.00000000.00000000.000000001.41726300.00000000.00000000.000000003.41711200160Selectivedynamicsdirect.00000000.40752380-.14850510TTT.48548710.40752380-.14850510TTT.24274360.40752380-.14850510TTT.72823070.40752380-.14850510TTT.12137180.02774876-.14850510TTT.60685890.02774876-.14850510TTT.36411530.02774876-.14850510TTT.84960250.02774876-.14850510TTT.12137180.28093210.00000000TTT.60685890.28093210.00000000TTT.36411530.28093210.00000000TTT.84960250.28093210.00000000TTT.00000000.66070720.00000000TTT.48548710.66070720.00000000TTT.24274360.66070720.00000000TTT.72823070.66070720.00000000TTT如果觉得有用的话,大家就拍下砖啊,让更多的同志们能探讨和学习表面构建.支持下我的呕心原创^_^!第二种构建poscar进阶方法,可构建高指数面,纳米线管等复杂结构在ms模块中搭建好所需要的的结构,然后点一个模块比如castep下拉菜单中的“calcualtion”,出现一个菜单,在该菜单最下方出现三个选项,run,files,help,我们选择点击“files”,然后点击“savefiles”。这个时候你建立的结构就会默认保存在项目下。你到项目下打开你保存的文件。会看到一个*.cell文件,如果看不到,你就到工具栏下设置下显示隐藏的文件,*.cell是隐藏的文件。打开这个cell文件,你会看到前面是坐标文件,比如:CODE:[Copytoclipboard]%BLOCKLATTICE_CART2.555294556406364-1.4753000000000010.0000000000000000.0000000000000002.9506000000000000.0000000000000000.0000000000000000.0000000000000004.678800000000000%ENDBLOCKLATTICE_CART%BLOCKPOSITIONS_FRACTi0.33333333333333340.66666666666666670.2500000000000000Ti-0.3333333333333334-0.66666666666666670.7500000000000001%ENDBLOCKPOSITIONS_FRAC%BLOCKKPOINTS_LIST-0.5000000000000000-0.50000000000000000.41666666666666660.010000000000000-0.5000000000000000-0.50000000000000000.25000000000000000.010000000000000-0.5000000000000000-0.50000000000000000.08333333333333330.010000000000000-0.50000000000000000.40000000000000000.41666666666666660.040000000000000-0.50000000000000000.40000000000000000.25000000000000000.040000000000000-0.50000000000000000.40000000000000000.08333333333333330.040000000000000cell文件第2行到第5行的数字显示的是晶格矢量,对应就是poscar前面的第3行到第6行的基矢量,不过这个时候poscar的第二行的晶格常熟要设置为1,因为cell文件的晶格矢量包含了晶格常数进去了。cell文件第7行空格,第8行显示说是坐标了,而且是分数坐标,呵呵,很清楚了,在poscar的基矢量接着写下“direct”,表示是分数坐标,然后把cell文件第9行到第10行(这里是针对我给出的简单例子只有2个原子,多原子的类推就可以了)copy到poscar下就可以了。一个poscar就完成了!就算很复杂的结构比如高指数表面,纳米线,纳米管,使用这种方法构建,非常简单!不过以上方法都是我个人摸索出来的,是否可行,有待大家评点!对于很多纳米结构,比如纳米碳管,不管什么类型的管,现在高版本的ms都可以直接输出。特别很方便,大家也可以看看。