Applications of the static sigma editor
This tutorial presents various applications of the static sigma editor. With it you can manipulate the QSGW static selfenergy Σ^{0}(k) in a variety of ways. The present tutorial displays some of the features of the editor in the context of some practical applications.
Questaal has two selfenergy editors corresponding to the two forms of self energy in QSGW:

a static selfenergy Σ^{0}(k) that substitutes for the exchangecorrelation potential in LDA, GGA, HartreeFock or LDA+U theory. Σ^{0}(k) is static and hermitian, and generates a noninteracting hamiltonian H_{0} and a corresponding noninteracting Green’s function G_{0}. This potential is the primary output of the the QSGW cycle and Σ^{0}(k) (actually $\Sigma^0{}V_\mathrm{xc}^\mathrm{LDA}$) is saved on disk, usually in file sigm.ext. There are numerous ways to use and transform Σ^{0}; most are accomplished through the Σ^{0}(k) editor described here.

a frequencydependent, nonhermitian self energy Σ(k,ω). The ωdependence broadens the states; the nonhermitian part gives the quasiparticle a finite lifetime. This is not generated automatically, but must be done using a special setup, as described in this tutorial. Once the dynamical Σ(k,ω) is made, there is a corresponding dynamical selfenergy editor to facilitate analysis.
Note: this page is under construction.
Sheared GaSb
Follow the steps that create input files and carry out QSGW selfconsistency in the Command Summary of the superlattice tutorial.
The do:
lmscell gasb vz=11.5/11.43 stack~scale=1/z~stretch=z^3~wsitex@short lmf ctrl.gasb wsig:fbz cp sigm2.gasb sigm.gasb cp sites.gasb site.gasb lmf ctrl.gasb rsig:fbz:rlxkp iactiv wsig:newkp cp sigm2.gasb sigm.gasb lmgwsc wt insul=14 mpi=12,12 tol=2e5 sym getsigp save= gasbshear gasb > out.job mpix n 16 lmfMPIK ctrl.gasb > out.lmf
Table of Contents
 Preliminaries
 Change in sigma on Shearing Zincblende GaSb
 Reading and writing RealSpace sigm Files
 Spin Orbit Coupling in Fe
 As Antisite Defect
 Computers that do not use IEEE conventions for binary files.
 Additional Exercises
Preliminaries
This tutorial uses the MPI parallel form of lmf. It assumes a script mpix is present in your path that runs an MPI job with # processors as follows:
mpix n # MPIjob
mpix can be simply mpirun.
If you have compiled lmf in serial mode, you can run the tutorials here in serial mode, by omitting the mpix n #
.
Change in sigma on Shearing Zincblende GaSb
Here we demonstrate how to modify the static selfenergy $\Sigma^0$ in the presence of a lattice shear. The shear reduces the symmetry, and $\Sigma^0$ must be adapted accordingly. For demonstration purposes we build on the tutorial on building superlattices, and shear GaSb in the manner used in that tutorial.
Here we modify $\Sigma^0$ calculated for the zincblende lattice, using it as a starting point for a new QSGW with the sheared lattice. Of course the entire QSGW calculation could be redone from scratch, but with small shears like this one it is a reasonable approximation that the matrix elements of $\Sigma^0$ remain invariant under the shear. Here we will check how good that ansatz is. In any case the ansatz gives a good estimate for the selfconsistent $\Sigma^0$, avoiding the need to start from scratch.
To set up input conditions of the original zincblende structure, cut and paste the init file designed for InAs and GaSb shown in the superlattice tutorial and name it init.gasb. Then build the input file and carry out both LDA and QSGW selfconsistency as described in detail in that tutorial. If you don’t want to read the tutorial, follow the instructions for Zincblende GaSb in the Command Summary, skipping the last part about drawing energy bands.
Assuming you followed instructions you will have run this step
mpix n 16 lmfMPIK ctrl.gasb > out.lmf
Find the gap :
grep gap out.lmf
You should find that the gap is 1.29 eV.
Now we are ready to make the shear. Use the superlattice editor built into lmscell to scale and stretch the lattice, so that (1) the basal plane matches that of InAs and (2) the shear conserves volume.
$ lmscell gasb vz=11.5/11.43 stack~scale=1/z~stretch=z^3~wsitex@short
In this instruction preprocessor variable z is set to the ratio of GaSb and InAs lattice constants and:
 ~scale=1/z scales the lattice constant by 1/z
 ~stretch=z^3 stretches the third lattice vector by z^{3}
 ~wsitex@short saves the modified structure into into site file sites.gasb
The two scalings together preserve the volume.
Compare sites.gasb to site.gasb and note that that the lattice constant has been reduced while the third lattice vector p3 has been stretched.
The shear reduces the symmetry. To obtain $\Sigma^0$ for reduced symmetry, first write $\Sigma^0$ for points in the full Brillouin zone. Then for the sheared lattice, read this $\Sigma^0$ and write it again under reduced symmetry.
lmf ctrl.gasb wsig:fbz
cp sigm2.gasb sigm.gasb
cp sites.gasb site.gasb
lmf ctrl.gasb rsig:fbz:rlxkp iactiv wsig:newkp
cp sigm2.gasb sigm.gasb
 Steps (1) and (2) generate a sigm.gasb without any symmetry operations.
 Step (3) replaces the site containing the zincblende structure with the sheared structure
 Steps (4) and (5) read sigm.gasb for the full BZ and writes it for the reduced symmetry operations of the sheared lattice. Switch rsig:fbz:rlxkp tells lmf that $\Sigma^0(\mathbf{k})$ contains k points for the full Brillouin zone, and also to ignore the mismatch in the k sought and file values of k (k points are shifted because the lattice is sheared). Switch wsig:newkp tells lmf to write $\Sigma^0(\mathbf{k}$ for the symmetry of the sheared mesh.
Try running
mpix n 16 lmfMPIK ctrl.gasb rs=1,0 vnit=1 > out &
This segment of output shows the symmetry operations of the sheared lattice is much reduced from the 24 point group operations of the Zincblende lattice:
GROUPG: the following are sufficient to generate the space group: m(1,1,0) m(1,1,0)
This segment of output
iors : read restart file (binary, mesh density) remesh density from 20 * 20 * 20 to 20 * 20 * 21 use from restart file: ef window, pos(sheared), pnu ignore in restart file: *
indicates the given lattice is sheared relative to the contents in the restart file, rst.gasb. lmf can nevertheless read the file.
Look a little farther down can you can see the bandgap
VBmax = 0.097372 CBmin = 0.182519 gap = 0.085147 Ry = 1.15799 eV
With this ansatz for $\Sigma^0$ the gap is reduced from 1.29 eV to 1.16 eV.
Now make it selfconsistent
lmgwsc wt insul=14 mpi=12,12 tol=2e5 sym getsigp save= gasbshear gasb > out.job
mpix n 16 lmfMPIK ctrl.gasb > out.lmf
You should find that the ansatz for $\Sigma^0$ is very close to the selfconsistent one:
$ grep more out.job
lmgwsc : iter 1 of 999 RMS change in sigma = 2.53E05 Tolerance = 2e5 more=T ...
lmgwsc : iter 2 of 999 RMS change in sigma = 5.58E06 Tolerance = 2e5 more=F ...
Run lmf with the selfconsistent $\Sigma^0$ and find the gap once again
mpix n 16 lmfMPIK ctrl.gasb rs=1,0 vnit=1 > out.lmf &
grep gap out.lmf
It should be essentially unchanged from the 1.16 eV found earlier. See also Additional Exercises.
Reading and writing RealSpace sigm Files
Files associated with this tutorial are too large to be included with the basic distribution. Download and unpack the tarball FeTutorial.tar.gz and change to directory fetutorial.
cp input/* . cp bas2.tppc3.tpd4.sep12/rst.fe . cp bas2.tppc3.tpd4.sep12/nk12/* . ln s f sigm sigm.fe
If your computer hardware does not notuseieeeconventionsforbinaryfiles, see here before proceeding.
Verify that the input conditions result in a selfconsistent potential.
rm f mixm.fe log.fe mpix n 12 lmf vnit=1 rs=1,0 ctrl.fe `cat switchesforlm` > out.noso.001
If you want to carry out a corresponding LDA calculation, do:
cp bas2.tppc3.tpd4.sep12/rst.lda rst.fe rm f mixm.fe log.fe mpix n 12 lmf vsig=0 vnit=1 rs=1,0 ctrl.fe `cat switchesforlm` > out.noso.lda.001
Problems arise if you try to include use the given selfenergy in a calculation with lower symmetry, e.g. a shear distortion or the addition of spinorbit coupling. It immediately appears if you repeat the calculation lmf with spinorbit coupling on (note tag SO in the input file!):
lmf vso=1 vnit=1 rs=1,0 ctrl.fe `cat switchesforlm`
This is because by the given Σ^{0}_{xc} is stored on a mesh of kpoints. SO coupling reduces symmetry and requires that Σ^{0} be available on a different kmesh.
You can work around this by saving Σ^{0} in a real space form; that is, map Σ^{0}_{RL,R′L′}(k) to Σ^{0}_{RL,R′L′}(T) = Σ^{0}_{R+TL,R′L′}. T is a crystal lattice translation vector; there are as many Tpoints as k points in kspace. The transformation is exact and no information is lost. (It is accomplished in practice using FFT techniques, and the original Σ^{0}_{RL,R′L′}(k) can be recovered by a Bloch sum.) Once generated Σ^{0}(T) doesn’t depend on the number of kpoints, so it is preferable in this context even while it is less compact.
Spin Orbit Coupling in Fe
As Antisite Defect
Computers that do not use IEEE conventions for binary files.
Files sigm._ext and rst._ext are stored in binary form following IEEE conventions. If your computer doesn’t read binary files in this format, do the following additional steps:
cp bas2.tppc3.tpd4.sep12/rsta.fe.gz . gunzip rsta.fe.gz gunzip sigma.fe.gz lmf vnit=0 rs=2,1 ctrl.fe `cat switchesforlm` lmf ctrl.fe `cat switchesforlm` rsig:ascii wsig cp sigm2.fe sigm
Additional Exercises
For the GaSb shear demo, compare energy bnds for the ansatz $\Sigma^0$ and the selfconsistent one. You should find them nearly identical.
Edit This Page