mirror of
https://github.com/triqs/dft_tools
synced 2025-01-03 01:55:56 +01:00
wrote the structure part
This commit is contained in:
parent
c83925e1d8
commit
210be63a32
@ -1,11 +1,112 @@
|
||||
Structure of DFT Tools
|
||||
======================
|
||||
|
||||
.. warning::
|
||||
TO BE WRITTEN!
|
||||
|
||||
.. image:: images/structure.png
|
||||
:width: 700
|
||||
:align: center
|
||||
|
||||
The central part of :program:`dft_tools`, which is performing the
|
||||
steps for the DMFT self-consistency cycle, is written following the
|
||||
same philosophy as the :ref:`TRIQS <triqslibs:welcome>` toolbox. At
|
||||
the user level, easy-to-use python modules are provided that allow to
|
||||
write simple and short scripts performing the actual
|
||||
calculation. Here, we will describe the general structure of the
|
||||
package, for the details of how to use the modules, please consult the
|
||||
user guide of this :ref:`documentation`.
|
||||
|
||||
The interface layer
|
||||
-------------------
|
||||
|
||||
Since the input for this DMFT part has to be provided by DMFT
|
||||
calculations, there needs to be another layer that connects the
|
||||
python-based modules with the DFT output. Naturally, this layer
|
||||
depends on the DFT package at hand. At the moment, there is an
|
||||
interface to the Wien2k band structure package, and a very light
|
||||
interface that can be used in a more general setup. Note that this
|
||||
light interface layer **dows not** allow full charge self-consistent
|
||||
calculations.
|
||||
|
||||
Wien2k interface
|
||||
""""""""""""""""
|
||||
|
||||
This interface layer consists of two parts. First, the output from Wien2k
|
||||
is taken, and localised Wannier orbitals are constructed. This is done
|
||||
by the fortran program :program:`dmftproj`. The second part consist in
|
||||
the conversion of the :program:`dmftproj` into the hdf5 file
|
||||
format to be used for the DMFT calculation. This step is done by a
|
||||
python routine called :class:`Wien2kConverter`, that reads the text output and
|
||||
creates the hdf5 input file with the necessary ingredients. Quite
|
||||
naturally, :program:`dft_tools` will adopt this converter concept also for future
|
||||
developments for other DFT packages.
|
||||
|
||||
General interface
|
||||
"""""""""""""""""
|
||||
|
||||
In addition to the specialised Wien2k interface, :program:`dft_tools`
|
||||
provides also a very light-weight general interface. It basically
|
||||
consists of a very simple :class:`HkConverter`. As input it requires a
|
||||
hamiltonian matrix :math:`H_{mn}(\mathbf{k})` written already in
|
||||
localised-orbital indices :math:`m,n`, on a :math:`\mathbf{k}`-point
|
||||
grid covering the Brillouin zone, and just a few other informations
|
||||
like total numer of electrons, how many correlated atoms in the unit
|
||||
cell, and so on. It converts this hamiltonian into a hdf5 format and
|
||||
sets some variables to standard values, such that it can be used with
|
||||
the python modules performing the DMFT calculation. How the
|
||||
hamiltonian matrix :math:`H_{mn}(\mathbf{k})` is actually calculated,
|
||||
is **not** part of this interace.
|
||||
|
||||
The DMFT calculation
|
||||
--------------------
|
||||
|
||||
As mentioned above, there are a few python routines that allow to
|
||||
perform the multi-band DMFT calculation in the context of real
|
||||
materials. The major part is contained inte module
|
||||
:class:`SumkDFT`. It contains routines to
|
||||
|
||||
* calculate local Greens functions
|
||||
* do the upfolding and downfolding from Bloch bands to Wannier
|
||||
orbitals
|
||||
* calculate the double-counting correction
|
||||
* calculate the chemical potential in order to get the electron count right
|
||||
* other things like determining the structure of the local
|
||||
hamiltonian, rotating from local to global coordinate systems, etc.
|
||||
|
||||
At the user level, all these routines can be used to construct
|
||||
situation- and problem-dependent DMFT calculations in a very efficient
|
||||
way.
|
||||
|
||||
Full charge self consistency
|
||||
----------------------------
|
||||
|
||||
Using the Wien2k interface, one can perform full charge
|
||||
self-consistent calculations. :class:`SumkDFT` provides routines to
|
||||
calculate the correlated density matrix and stores it in a format that
|
||||
can be read in by the :program:`lapw2` part of the Wien2k
|
||||
package. Changing a one-shot calculation in a full charge
|
||||
self-consistent one is only a couple of additional lines in the code!
|
||||
|
||||
Post-processing
|
||||
---------------
|
||||
|
||||
The main result of DMFT calculation is the interacting Greens function
|
||||
and the Self energy. However, one is normally interested in
|
||||
quantitites like band structure, density of states, or transport
|
||||
properties. In order to calculate these things, :program:`dft_tools`
|
||||
provides the post-processing modules :class:`SumkDFTTools`. It
|
||||
contains routines to calculate
|
||||
|
||||
* (projected) density of states
|
||||
* partial charges
|
||||
* correlated band structures (*spaghettis*)
|
||||
* transport properties such as optical conductivity, resistivity,
|
||||
or thermopower.
|
||||
|
||||
.. warning::
|
||||
At the moment neither :ref:`TRIQS<triqslibs:welcome>` nor :program:`dft_tools`
|
||||
provides Maximum Entropy routines! You can use the Pade
|
||||
approximants implemented in the TRIQS library, or you use your own
|
||||
home-made Maximum Entropy code to do the analytic continuation from
|
||||
Matsubara to the real-frequency axis.
|
||||
|
||||
|
||||
|
||||
|
@ -13,7 +13,7 @@ correlated materials, combining realistic DFT band-structure
|
||||
calculations with the dynamical mean-field theory. Together with the
|
||||
necessary tools to perform the DMFT self-consistency loop for
|
||||
realistic multi-band problems, the package provides a full-fledged
|
||||
charge self-consistent interface to the `WIEN2K package
|
||||
charge self-consistent interface to the `Wien2K package
|
||||
<http://www.wien2k.at>`_. In addition, if Wien2k is not available, it
|
||||
provides a generic interface for one-shot DFT+DMFT calculations, where
|
||||
only the single-particle Hamiltonian in orbital space has to be
|
||||
|
Loading…
Reference in New Issue
Block a user