Header Ads Widget

Ab initio Calculations Using Vasp Code

Last Posts

10/recent/ticker-posts

How to make a supercell using ASE interface

 

There is not a direct way to make supercell within Vasp code. For that we can use the ASE interface to do that.

To install the ASE interface click on the following link:

How to download and install the Atomic Simulation Environment ASE

 

To make a supercell we need to acticate the virtual environment containing the ASE interface

algerien1970@linux-kq57:~/abinitio/vasp-ase-tutorials/vasp-supercell> conda activate base
(base) algerien1970@linux-kq57:~/abinitio/vasp-ase-tutorials/vasp-supercell> 

 

We need also the POSCAR file for the unit cell

Mg 
1.0000000000000000
3.4100000000000006 0.0000000000000000 0.0000000000000000
-1.7050000000000003 2.9531466269049362 0.0000000000000000
0.0000000000000000 0.0000000000000000 5.5242000000000004
Mg
2
Cartesian
0.0000000000000000 0.0000000000000000 0.0000000000000000
0.0000000000000000 1.9687644179366242 2.7621000000000002

 

At the end we need the ASE script supercell.py

import ase.io.vasp
cell = ase.io.vasp.read_vasp("POSCAR")
ase.io.vasp.write_vasp("POSCAR.2x2x2",cell*(2,2,2), label='222supercell',direct=True,sort=True)

 

Creation of the 2x2x2 supercell 

(base) algerien1970@linux-kq57:~/abinitio/vasp-ase-tutorials/vasp-supercell> chmod +x *.py
(base) algerien1970@linux-kq57:~/abinitio/vasp-ase-tutorials/vasp-supercell> python supercell.py

 

The POSCAR of supercell

222supercell
1.0000000000000000
6.8200000000000012 0.0000000000000000 0.0000000000000000
-3.4100000000000006 5.9062932538098725 0.0000000000000000
0.0000000000000000 0.0000000000000000 11.0484000000000009
Mg
16
Direct
0.0000000000000000 0.0000000000000000 0.0000000000000000
0.1666666666666667 0.3333333333333334 0.2500000000000000
0.0000000000000000 0.0000000000000000 0.4999999999999999
0.1666666666666667 0.3333333333333334 0.7500000000000000
0.0000000000000000 0.5000000000000000 0.0000000000000000
0.1666666666666667 0.8333333333333334 0.2500000000000000
0.0000000000000000 0.5000000000000000 0.4999999999999999
0.1666666666666667 0.8333333333333334 0.7500000000000000
0.5000000000000000 0.0000000000000000 0.0000000000000000
0.6666666666666667 0.3333333333333334 0.2500000000000000
0.5000000000000000 0.0000000000000000 0.4999999999999999
0.6666666666666667 0.3333333333333334 0.7500000000000000
0.5000000000000000 0.5000000000000000 0.0000000000000000
0.6666666666666667 0.8333333333333334 0.2500000000000000
0.5000000000000000 0.5000000000000000 0.4999999999999999
0.6666666666666667 0.8333333333333334 0.7500000000000000

 

 We can use another script more pratical supersize.py

import sys
import ase.io.vasp

if len(sys.argv) < 3:
sys.exit("Usage: %s filename N1xN2xN3" % sys.argv[0])

cell = ase.io.vasp.read_vasp(sys.argv[1])

repeats= [int(x) for x in sys.argv[2].split("x")]
if len(repeats) != 3:
sys.exit("Erroring parsing supercell repeat. It should be three positive numbers separated by \"x\"")

ase.io.vasp.write_vasp(sys.argv[1]+"."+sys.argv[2],cell*(repeats[0],repeats[1],repeats[2]),label="supercell-"+sys.argv[2],direct=True,sort=True)

 

You can download the script from the following link and remove the first line

 script

 

Creation of the 2x2x2 supercell 

(base) algerien1970@linux-kq57:~/abinitio/vasp-ase-tutorials/vasp-supercell> chmod +x *.py
(base) algerien1970@linux-kq57:~/....vasp-supercell> python supersize.py POSCAR 1x2x3

 

The POSCAR of 1x2x3 supercell

supercell-1x2x3
1.0000000000000000
3.4100000000000006 0.0000000000000000 0.0000000000000000
-3.4100000000000006 5.9062932538098725 0.0000000000000000
0.0000000000000000 0.0000000000000000 16.5726000000000013
Mg
12
Direct
0.0000000000000000 0.0000000000000000 0.0000000000000000
0.3333333333333334 0.3333333333333334 0.1666666666666667
0.0000000000000000 0.0000000000000000 0.3333333333333333
0.3333333333333334 0.3333333333333334 0.5000000000000000
0.0000000000000000 0.0000000000000000 0.6666666666666666
0.3333333333333334 0.3333333333333334 0.8333333333333333
0.0000000000000000 0.5000000000000000 0.0000000000000000
0.3333333333333334 0.8333333333333334 0.1666666666666667
0.0000000000000000 0.5000000000000000 0.3333333333333333
0.3333333333333334 0.8333333333333334 0.5000000000000000
0.0000000000000000 0.5000000000000000 0.6666666666666666
0.3333333333333334 0.8333333333333334 0.8333333333333333

 

Post a Comment

0 Comments