VASP SrVO3 Density of states ------------------------------ Here we compute the density-of-states using VASP. Total Density-of-states ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ INPUT: :download:`INCAR` | :download:`KPOINTS` | :download:`POTCAR` | :download:`POSCAR` OUTPUT: :download:`CONTCAR` | :download:`OSZICAR` | :download:`OUTCAR` | :download:`DOSCAR` | :download:`PROCAR` | :download:`vasp.out` This calculation needs to be a static run (ie. no structural relaxation NSW=0). Please see :ref:`relaxation introduction ` for a basic description of the four required files. A typical INCAR would be as follows: .. code-block:: bash ISPIN = 2 # Spin polarized calculation MAGMOM= 0 4 0 0 0 # Initialization of moments PREC = med # Sets cutoffs and grids NSW=0 # Don't move the atoms ISMEAR = -5 # Use the tetrahedron method ENCUT=375 # Plane wave cuttoff NEDOS=5000 # Number of energy points for DOS This would produce a file called DOSCAR which has the total density of states and the projected DOS if requested. The format of the DOSCAR is as follows: .. code-block:: bash 5 5 0 0 # first five lines not terribly useful... 0.1148420E+02 0.3857953E-09 0.3857953E-09 0.3857953E-09 0.5000000E-15 1.000000000000000E-004 CAR unknown system 12.00000000 -3.00000000 5000 4.96643483 1.00000000 # Total_elec unknown NEDOS Efermi unknown -3.000 0.0000E+00 0.0000E+00 0.7000E+01 0.7000E+01 # Energy tdos_up tdos_dn cdos_up cdos_dn -2.997 0.0000E+00 0.0000E+00 0.7000E+01 0.7000E+01 # ... -2.994 0.0000E+00 0.0000E+00 0.7000E+01 0.7000E+01 # ... ... One problem you will have is that VASP defaults to making the mim/max energy of the DOS as the entire range of the spectrum which you rarely care about. If you use many points (ie. NEDOS) you will still resolve things at the expense of huge files. The best answer is to finish writing our own software to compute the DOS as a postprocessing step. In the meantime, one can just keep the WAVECAR and quickly rerun to recompute the DOS in a smaller energy range. Do a quick plot of the DOS to find out what max/min energy you want. Be careful that the plotting code does not shift the results by the Fermi energy. You can extract the total DOS from the DOSCAR file using a very antiquated script called dformat.py and then plot it however you like. dformat.py desperately needs to be rewritten: .. code-block:: bash $ dformat.py total noshiftfermi > dos.out Now you can add these two lines to the INCAR and rerun: .. code-block:: bash EMIN=-3 # Minimum energy for computing DOS EMAX=12 # Maximum energy for computing DOS .. figure:: srvo3_dos.png :scale: 60% **DOS**. This is the density of states for SrVO3. I only plotted one spin component as the calculaion found a non-spin-polarized solution. :download:`EPS ` :download:`Plotting Script ` Partial Density-of-states ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you want to have the projected DOS, you need to set the LORBIT parameter in the INCAR. You should probably be in the habbit of turning this on. .. code-block:: bash LORBIT=11 # Compute projections along with phase factors This will result in the creation of the PROCAR file which has the projections onto local orbitals for each k-point and each band. We will not worry about the PROCAR at this point.