In this tutorial how to draw a band structure is described by taking gold (Au) in the face centered cubic structure as an example
First, perform an SCF calculation to get the charge density.
&control calculation='scf' restart_mode='from_scratch', pseudo_dir = '/home/ikutaro/QE/pseudo/' outdir='./tmp' prefix='au' tprnfor = .true. tstress = .true. forc_conv_thr = 1.d-4 nstep=10000 / &system ibrav = 2 A = 4.00 !A = 4.079 nat = 1 ntyp = 1 ecutwfc = 40.0 ecutrho = 400.0 occupations='smearing' smearing='mp' degauss=0.01 nbnd=24 !input_dft='vdW-DF2-B86R' !assume_isolated = 'esm', esm_bc='bc1' / &electrons diagonalization='cg' conv_thr = 1.0e-12 mixing_beta = 0.1 / &ions ion_dynamics='bfgs' / &cell cell_dynamics='bfgs' / ATOMIC_SPECIES Au 0.0000 au_pbe_v1.uspp.F.UPF ATOMIC_POSITIONS (crystal) Au 0.000000000000 0.000000000000 0.00000000000 K_POINTS (automatic) 16 16 16 0 0 0
mpirun -np 8 < au_scf.in > au_scf.out
For the cell optimization, use the input file like follows
&control calculation='vc-relax' restart_mode='from_scratch', pseudo_dir = '/home/ikutaro/QE/pseudo/' outdir='./tmp' prefix='au' tprnfor = .true. tstress = .true. forc_conv_thr = 1.d-4 nstep=10000 / &system ibrav = 2 A = 4.00 !A = 4.079 nat = 1 ntyp = 1 ecutwfc = 40.0 ecutrho = 400.0 occupations='smearing' smearing='mp' degauss=0.01 nbnd=24 !input_dft='vdW-DF2-B86R' !assume_isolated = 'esm', esm_bc='bc1' / &electrons diagonalization='cg' conv_thr = 1.0e-12 mixing_beta = 0.1 / &ions ion_dynamics='bfgs' / &cell cell_dynamics='bfgs' / ATOMIC_SPECIES Au 0.0000 au_pbe_v1.uspp.F.UPF ATOMIC_POSITIONS (crystal) Au 0.000000000000 0.000000000000 0.00000000000 K_POINTS (automatic) 16 16 16 0 0 0Here we use default values for the pressure tolerance.
mpirun -np 8 < au_scf.in > au_scf.out
Having connfirmed the convergence of the SCF calculation, we are ready to perform the band structure calculation. Here is an input file for the band structure calculation.
&control calculation='bands' restart_mode='from_scratch', pseudo_dir = '/home/ikutaro/QE/pseudo/' outdir='./tmp' prefix='au' tprnfor = .true. tstress = .true. forc_conv_thr = 1.d-4 nstep=10000 / &system ibrav = 2 A = 4.00 !A = 4.079 nat = 1 ntyp = 1 ecutwfc = 40.0 ecutrho = 400.0 occupations='smearing' smearing='mp' degauss=0.01 nbnd=24 !input_dft='vdW-DF2-B86R' !assume_isolated = 'esm', esm_bc='bc1' / &electrons diagonalization='cg' conv_thr = 1.0e-12 mixing_beta = 0.1 / &ions ion_dynamics='bfgs' / &cell cell_dynamics='bfgs' / ATOMIC_SPECIES Au 0.0000 au_pbe_v1.uspp.F.UPF ATOMIC_POSITIONS (crystal) Au 0.000000000000 0.000000000000 0.00000000000 K_POINTS tpiba_b 5 0.0 0.0 0.0 50.0 1.0 0.0 0.0 50.0 1.0 0.5 0.0 50.0 0.5 0.5 0.5 50.0 0.0 0.0 0.0 0.0
In this example, we draw a band structure along
K_POINTS tpiba_bIf you want to use the k-points in the unit of the reciprocal lattice vector, use
K_POINTS crystal_bThen set the number of high symmetry points. In this case
5The number is followed by the k-points and the mesh (number of intervals)
0.0 0.0 0.0 50.0 1.0 0.0 0.0 50.0 1.0 0.5 0.0 50.0 0.5 0.5 0.5 50.0 0.0 0.0 0.0 0.0which define the segments of the high symmetry line in the Brillouin zone. In this example, total number of k-points is 50+50+50+50+1=201. In general, something like
K_POINTS tpiba_b | crystal_b NKSEG K1X K1Y K1Z NKMESH1 K2X K2Y K2Z NKMESH2 ... KNX KNY KNZ NKMESHNand the i-th k-point in the first segment (for instance) is determined by
mpirun -np 8 < au_bands.in > au_bands.outNOTE: Make sure you use the same number of cores/cpus as that for the SCF calculation.
&bands outdir='./tmp' prefix='au' filband='au_band' lsym=.true. /
mpirun -np 8 bands.x < bands.in > bands.outYou will obtain
$ gnuplot $ > plot 'au_band.gnu'If you want to set the energy origin to the Fermi level, it may be like
$ > plot 'au_and.gnu' using ($1):($2-17.1096)The value "17.1096" is the value of the Fermi level, taken from the previsou SCF calculation.