碳纳米管deform
如何将下图所示的圆形碳纳米管 (CNT) 变为压缩碳纳米管?


其实很简单, 我们只需利用vtst工具进行插值得到中间的过渡结构!
首先下载vtstscript文件,下载地址为: https://theory.cm.utexas.edu/vtsttools/download.html
把初末结构放在ini,fin两个文件夹里面,命名为CONTCAR
具体命令为: dist.pl ini/CONTCAR fin/CONTCAR N (N是你要插值的数目)
最后得到一列的文件夹,里面的结构就是插值后的中间结构,如图所示

这里主要注意的是,需要把初末两个结构的原子位置得一一对应,否则会出现乱七八糟的插值结构。
因为我的初末结构原子位置不一致,所以我进行了相应的修改,相关python代码如下
filepath1 = 'cnt_(16,0)_originalPOSCAR'
with open(filepath1,'r') as f1:
content1 = f1.readlines()
ls1 = [0] + content1[9:64+9]
filepath2 = 'cnt_(16,0)_flat-POSCAR'
with open(filepath2,'r') as f2:
content2 = f2.readlines()
ls2 = [0] + content2[9:64+9]
trans = {1:16,3:19,
2:17,6:22,
4:20,7:23,
5:21,10:26,
40:24,35:27,
25:25,30:30,
41:28,36:31,
26:29,31:34,
42:32,37:35,
27:33,32:38,
43:36,38:39,
28:37,33:42,
44:40,39:43,
29:41,34:46,
8:44,11:47,
9:45,14:50,
12:48,15:51,
13:49,18:54,
16:52,19:55,
17:53,22:58,
60:56,55:59,
45:57,50:62,
61:60,56:63,
46:61,51:64,
62:1,57:3,
47:2,52:6,
63:4,58:7,
48:5,53:10,
64:8,59:11,
49:9,54:14,
20:12,23:15,
21:13,24:18
}
ls3 = [0]*65
for i in range(1,65):
ls3[i] = ls1[trans[i]]
# print(ls3)
filepath3 = 'originalPOSCAR'
with open(filepath3,'w') as f3:
f3.writelines(content1[:9])
f3.writelines(ls3[1:])

浙公网安备 33010602011771号