Header Ads Widget

Ab initio Calculations Using QELK SUITE Package

Last Posts

10/recent/ticker-posts

How to calculate the Total DOS of Silicon with QE alone

Silicon's total density of states, computed with Quantum ESPRESSO alone -- a type 1, independent calculation with the QELK suite (no Elk involved here; for the direct Elk-vs-QE overlay, see the Si_tdos_elk_vs_qe example).

 

The input file

 

We need only the input file

Si_tdos_qe.qelk

version 1

cell bohr
  -5.1   0.0   5.1
   0.0   5.1   5.1
  -5.1   5.1   0.0
end

atoms crystal
  Si  0.00  0.00  0.00
  Si  0.25  0.25  0.25
end

species Si
  elk_file   Si.in
  qe_pseudo  Si.pz-vbc.UPF
  qe_mass    28.086
end

step scf qe
  from initial
  calculation  scf
  ecutwfc      20
  kpoints      6 6 6
end

step nscf qe
  from scf
  calculation  nscf
  ecutwfc      20
  kpoints      12 12 12
end

step tdos_qe tdos
  from nscf
  fildos  si.dos
end

Note: nscf uses a much denser mesh (12x12x12) than scf (6x6x6) -- DOS needs far more k-points than SCF to resolve fine structure, the same reasoning as Elk's ngridk in Si_tdos_elk. Both QE steps share the same prefix/outdir by default, so the tdos_qe step finds nscf's wavefunctions automatically -- no manual dos.in/dos.x needed anymore; "tdos" (dos.x) is a code qelk knows about, alongside elk, qe and "pdos" (projwfc.x). Each step declares where it continues from: nscf from scf, tdos_qe from nscf. tdos_qe takes no geometry: dos.x reads the energies that the nscf step left in the shared outdir/prefix (a tdos step may also follow the scf directly, but an nscf on a denser mesh is better).

 

Calculation

 

algerien1970@linux-ml0a:~/abinitio/QELK/examples/Si_tdos_qe> qelk Si_tdos_qe.qelk

A first check with --dry-run writes pw.in for scf/nscf and dos.in for tdos_qe, without launching any binary:

algerien1970@linux-ml0a:~/abinitio/QELK/examples/Si_tdos_qe> qelk Si_tdos_qe.qelk --dry-run

Every step's files land in run/NN_<step>/, and the important ones are also copied next to the .qelk file, prefixed with the step id: scf.pw.out, nscf.pw.out, tdos_qe.dos.in, tdos_qe.dos.out. The DOS data itself, si.dos, is NOT copied up -- it stays in run/02_tdos_qe/si.dos (same situation as projwfc's *.pdos_* files).

 

Plot

 

plot_dos.py run/02_tdos_qe/si.dos -o qe_dos.png

Note: unlike Elk's TDOS.OUT, QE's si.dos sits on QE's own absolute eV scale, not referenced to the Fermi level -- plot_dos.py reads the Fermi energy straight from si.dos's own header, so 0 eV on the plot below is NOT the Fermi level unless you pass --efermi <value> explicitly (the same absolute-vs-referenced distinction Si_band_qe's plot already showed for bands).

 


 

Analysis

 

To be filled in once this has actually been run -- paste the real si.dos, scf.pw.out and tdos_qe.dos.out here and this section gets the same treatment Si_tdos_elk got: real peak positions and heights pulled from si.dos, the Fermi energy and gap read from scf.pw.out, and an electron-count sanity check integrating the DOS up to E_Fermi.

Post a Comment

0 Comments