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.

0 Comments