-
Notifications
You must be signed in to change notification settings - Fork 0
/
readme
51 lines (36 loc) · 1.57 KB
/
readme
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
A very simple python script to generate nanobue from nanosheet formed by any crystal.
The user only needs to provide a strcture file in the format of VASP/POSCAR and prepare
an supercell input file as illustrated in the following.
We first create a new supercell.in with contents as following (Chrysotile.vasp is crystal structure in primitive unit cell) :
Chrysotile.vasp
1 0 0
1 2 0
0 0 1
1
0
Save the file and run
>>> python construct_nanotube.py
>>> cp nanosheet.vasp Chrysotile_rect.vasp
Now you have a new crytal structure which a1_new = a1_old, a2_new = 1*a1_old + 2*a2_old, satisfying a2_new PENPENDICULAR to a1_new.
If you want other structure, please modify the 2nd to 4th line as you wish
a11 a12 a13
a21 a22 a23
a31 a32 a33
such that a1_new = a11*a1_old + a12*a2_old + a13*a3_old; a2_new = a21*a1_old + a22*a2_old + a23*a3_old, etc.
Please make sure that a1_new should be perpendicular to a2_new. and a3_new is permendicular to a1_new and a2_new.
Now we use supercell.in with contents as following
Chrysotile_rect.vasp
24 0 0
0 3 0
0 0 1
1
0
Save the file and run
>>> python construct_nanotube.py
This will generate a nanotube which rolls along a1_new direction with the tube central axis // to the a2_new direction.
The 5th line can be 1 or -1, settting whether the top most atoms in z are rolled inside or outside.
The 6th line can be 0 to |c_new|, which sets how much we shift the atoms in z before we roll a nanosheet into a tube.
Copyright:
Changming Yue
Ref: cif2tube, https://doi.org/10.1016/j.jtice.2016.08.030