mirror of
https://github.com/triqs/dft_tools
synced 2024-08-16 17:28:29 +02:00
60 lines
3.1 KiB
ReStructuredText
60 lines
3.1 KiB
ReStructuredText
![]() |
.. _nio_csc:
|
||
|
|
||
|
DFT and projections
|
||
|
==================================================
|
||
|
|
||
|
We will perform charge self-consitent DFT+DMFT calcluations for the charge-transfer insulator NiO. We still start from scratch and provide all necessary input files to do the calculations.
|
||
|
|
||
|
VASP setup
|
||
|
-------------------------------
|
||
|
We start by running a simple VASP calculation to converge the charge density initially.
|
||
|
Use the :ref:`INCAR`, :ref:`POSCAR`, and :ref:`KPOINTS` provided and use your
|
||
|
own :file:`POTCAR` file.
|
||
|
|
||
|
Let us take a look in the :file:`INCAR`, where we have to specify local orbitals as basis
|
||
|
for our many-body calculation.
|
||
|
|
||
|
.. literalinclude:: images_scripts/INCAR
|
||
|
|
||
|
`LORBIT = 14` takes care of optimizing the projectors in the energy window defined
|
||
|
by `EMIN` and `EMAX`. We switch off all symmetries with `ISYM=-1` since symmetries
|
||
|
are not implemented in the later DMFT scripts. Finally, we select the relevant orbitals
|
||
|
for atom 1 (Ni, d-orbitals) and 2 (O, p-orbitals) by the two `LOCPROJ` lines.
|
||
|
For details refer to the VASP wiki on the `LOCPROJ <https://cms.mpi.univi
|
||
|
e.ac.at/wiki/index.php/LOCPROJ>`_ flag. The projectors are stored in the file `LOCPROJ`.
|
||
|
|
||
|
|
||
|
plovasp
|
||
|
------------------------------
|
||
|
Next, we postprocess the projectors, which VASP stored in the file `LOCPROJ`.
|
||
|
We do this by invoking :program:`plovasp plo.cfg` which is configured by an input file, e.g., named :ref:`plo.cfg`.
|
||
|
|
||
|
.. literalinclude:: images_scripts/plo.cfg
|
||
|
|
||
|
Here, in `[General]' we set the basename and the grid for calculating the density of
|
||
|
states. In `[Group 1]` we define a group of two shells which are orthonormalized with
|
||
|
respect to states in an energy window from `-9` to `2` for all ions simultanously
|
||
|
(`NORMION = False`). We define the two shells, which correspond to the Ni d states
|
||
|
and the O p states. Only the Ni shell is treated as correlated (`CORR = True`), i.e.,
|
||
|
is supplemented with a Coulomb interaction later in the DMFT calculation.
|
||
|
|
||
|
Converting to hdf5 file
|
||
|
-------------------------------
|
||
|
We gather the output generated by :program:`plovasp` into a hdf5 archive which :program:`dft_tools` is able to read. We do this by running :program:`python converter.py` on the script :ref:`converter.py`:
|
||
|
|
||
|
.. literalinclude:: images_scripts/converter.py
|
||
|
|
||
|
Now we are all set to perform a dmft calculation.
|
||
|
|
||
|
DMFT
|
||
|
==================================================
|
||
|
|
||
|
dmft script
|
||
|
------------------------------
|
||
|
|
||
|
Since the python script for performing the dmft loop pretty much resembles that presented in the tutorial on :ref:`srvo3`, we will not go into detail here but simply provide the script :ref:`nio.py`. Following Kunes et al. in `PRB 75 165115 (2007) <https://journals.aps.org/prb/abstract/10.1103/PhysRevB.75.165115>`_ we use :math:`U=8` and :math:`J=1`. Here, we use :math:`\beta=5` instead of :math:`\beta=10` to speed up the calculations.
|
||
|
|
||
|
Local lattice Green's function for all projected orbitals
|
||
|
----------------------
|
||
|
We calculate the local lattice Green's function - now also for the uncorrelated orbitals, i.e., the O p states. Therefor we use :download:`NiO_local_lattice_GF.py <images_scripts/NiO_local_lattice_GF.py`
|