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
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
0 Comments