First DFT and QSGW calculations
Silicon
The most vital parameter to converge is the GW k-mesh, but it can become expensive. For a fixed k-mesh, the next most important factor is the LMTO basis; using the blm’s “–gw” tuning, adding empty spheres, increasing lmax and lmaxa can be examined to gauge how reliable the basis is.
simplest configuration
ase convert Si.cif si.poscar --read-args primitive_cell=True subtrans_included=False
poscar2init si.poscar >init.si
blm --nk=8 --gmax=9.4 --simple init.si
echo 'gw nkabc=4 4 4' >> ctrl.si
lmfa ctrl.si >llmfa
mpirun -n 32 lmf ctrl.si > llmf_lda
lmchk --syml ctrl.si >llmchk
mpirun -n 32 lmf --band~fn=syml ctrl.si >llmf_band_lda
mv bnds.si bnds_lda.si
lmgw.sh --mpirun-n='OMP_NUM_THREADS=1 mpirun -n 32' --cmd-gd='mpirun -n 8' --mpirun-1='OMP_NUM_THREADS=32 mpirun -n 1' ctrl.si
mpirun -n 32 lmf --band~fn=syml ctrl.si >llmf_band_qsgw
mv bnds.si bnds_qsgw.si
band-plot -e -8,8 -u eV syml.si bnds_lda.si:c=blue bnds_qsgw.si:w=1.3:c=orange -f -o si_comparison.pdf
adding empty spheres
Using “–gw” causes blm to add various GW controls. “–findes” and “–addes” finds and adds empty spheres.
ase convert Si.cif si.poscar --read-args primitive_cell=True subtrans_included=False
poscar2init si.poscar >init.si
blm --nk=8 --gmax=9.4 --gw~nk=4 --findes --addes --simple init.si
lmfa ctrl.si >llmfa
mpirun -n 32 lmf ctrl.si > llmf_lda
continuing exactly as before.
alternative uses of the init for setting up the crystal
LATTICE
SPCGRP=227
A=10.26
SITE
ATOM=Si X=0 0 0
Iron
It is necessary to add a moment to break the spin symmetry.
(The moment is specified by , i.e. s,p,d,f starting charges.)
ase convert Fe.cif fe.poscar --read-args primitive_cell=True subtrans_included=False
poscar2init fe.poscar >init.fe
blm --nk=20 --gmax=9.9 --simple --gw~nk=6 --mag init.fe
sed -i -e 's/atom=Fe z= 26 r= 2.345586 lmx=3 lmxa=5/atom=Fe z= 26 r= 2.345586 lmx=3 lmxa=5 mmom=0 0 2/' ctrl.fe
lmfa ctrl.fe >llmfa
mpirun -n 32 lmf ctrl.fe > llmf_lda
lmchk --syml ctrl.fe >llmchk
mpirun -n 32 lmf ctrl.fe >llmf_lda
mpirun -n 32 lmf --band~fn=syml ctrl.fe >llmf_band_lda
mv bnds.fe bnds_lda.fe
band-plot syml.fe bnds_lda.fe -e -8,8 -u eV -f -o fe_lda.pdf
lmgw.sh --mpirun-n='OMP_NUM_THREADS=1 mpirun -n 32' --mpirun-1='OMP_NUM_THREADS=32 mpirun -n 1' ctrl.fe
mpirun -n 32 lmf --band~fn=syml ctrl.fe >llmf_band_qsgw
mv bnds.fe bnds_qsgw.fe
band-plot syml.fe bnds_qsgw.fe -e -8,8 -u eV -f -o fe_qsgw.pdf
band-plot syml.fe bnds_qsgw.fe:c=orange bnds_lda.fe:c=grey -e -8,8 -u eV -f -o fe_comparison.pdf
mpirun -n 32 lmf --dos ctrl.fe
echo 1001 -1 1 | lmdos ctrl.fe
The dos file can be processed using dosplot.py in the “inputs/lmf” directory:
python dosplot.py dos.fe 0 1
LDA magnetic moment at Fe site:
mkrout: Qtrue sm,loc local true mm smooth mm local mm ovlp
1 7.039956 2.794799 4.245157 2.239939 0.387894 1.852046 2.154687
QSGW moment:
mkrout: Qtrue sm,loc local true mm smooth mm local mm ovlp
1 6.994343 2.819829 4.174514 2.305116 0.383774 1.921342 2.137876
Tutorials for partial DOS, Mulliken analysis, and core-level spectroscopy, can be found on this page.
Nickel oxide
The antiferromagnetic structure requires a supercell. This can be built from the primitive cell using lmscell which interactively prompts for the desired lattice vectors of the target supercell.
lmscell can be caused to write the new structure to a “site.ext” file. The control file can be edited to use the site file, replacing the structure or site blocks. Without the “–simple” option, blm will use “site.ext” by default.
We add the flags for the screened method in the blm and lmgw.sh calls to obtain more rapidly converging results with k-mesh.
generate a the primitive cell and supercell structure with AF configuration
ase convert NiO.cif nio.poscar --read-args primitive_cell=True subtrans_included=False
poscar2init nio.poscar >init.nio
blm --nk=6 --gw~nk=3 --mag --gmax=11.2 --simple --rsham init.nio
lmchk ctrl.nio > llmchk_primitive
echo "2.089 2.089 4.178 2.089 4.178 2.089 4.178 2.089 2.089" | lmscell --wsite~fn=site ctrl.nio
See here for documentation on the supercell maker.
Edit the ctrl file to setup an AF configuration and to use the “site.ext” file for the structural information
# Autogenerated from init.nio using:
# blm --nk=6 --gw~nk=3 --mag --gmax=11.2 --simple --rsham init.nio
#symgrp i*r3(1,1,-1) r4x
#symgrp spglib
ham
gmax= 11.2
autobas[pnu=1 loc=1 mto=4 gw=1 pfloat=2,1]
forces= 0
nspin= 2
so= 0
xcfun="lm_lda_bh"
sigp[emax=3]
str
rmaxa=4.73698
env[mode=1 nel=2 el=-0.5 -1.2]
iter
nit= 99
mix= b2,b=0.3,k=7
conv= 1e-5
convc= 3e-5
bz
nkabc= 6
gw
nkabc= 3
gcutb=3.51
gcutx=2.86
mixbeta=1
struc
file=site
spec
atom=Ni z= 28 r= 2.192965 lmx=3 lmxa=5 idmod=0,0,1 mmom=0 0 2
atom=NiX z= 28 r= 2.192965 lmx=3 lmxa=5 idmod=0,0,1 mmom=0 0 -2
atom=O z= 8 r= 1.754673 lmx=3 lmxa=5
site
file=site
Swap one site from “up” to “down” by marking it “NiX” in the site.nio file:
sed -i -e 's/Ni 4.1780000 4.1780000 4.1780000/NiX 4.1780000 4.1780000 4.1780000/' site.nio
lmchk ctrl.nio >llmchk_afm
generate the basis parameters for the new “NiX” species
lmfa --usebasp ctrl.nio
run the QSGW calculation
lmgw.sh --mpirun-n='OMP_NUM_THREADS=1 mpirun -n 32' --cmd-gd='mpirun -n 8' --lm-args='--v8' ctrl.nio
Optionally, you can use the AF symmetry by specifying in the control file “symgrp find afm:e::(1/2,1/2,1/2)”.
There is also room for some empty spheres.
Indium-2 Selenium-3
Alpha-In2Se3 is an insulator that is part of the ferroelectric material class. Similar to how there are ferromagnets which are materials that have a spontaneous magnetic field that arises from the spin structure of a material ferroelectrics have a spontaneous electric field that arises from the atomic structure of a material. It is also a vdW material so it is constructed of 2D five-atom sheets that stack in either an A-B-A or A-B-C pattern to make the bulk structure. This system is the A-B-A structure and bulk measurements provide an indirect band gap of ~1.3 +/- 0.1 eV. It has potential applications in further miniaturisation of transistors.
3-4 iterations gives a reasonable result while 4-5 loops is needed for full convergence. If this is still too long then you can decrease the gw k-points to 2,2,1.