3
0
mirror of https://github.com/triqs/dft_tools synced 2024-12-21 20:03:41 +01:00

docs (conversion): update VASP-conversion documentation

This commit is contained in:
Oleg E. Peil 2018-08-01 16:59:47 +02:00 committed by Manuel
parent c2dfc3fb6c
commit 9081ce634c

View File

@ -189,54 +189,98 @@ Interface with VASP
yet publicly released. The documentation may, thus, be subject to changes
before the final release.
Note that this VASP interface relies on new options introduced since version
5.4.x.
*Limitations of the alpha-version:*
Additionally, the interface only works correctly if the k-point symmetries
* The interface works correctly only if the k-point symmetries
are turned off during the VASP run (ISYM=-1).
The output of raw (non-normalized) projectors is controlled by an INCAR option
LOCPROJ whose complete syntax is described in the VASP documentaion.
* Generation of projectors for k-point lines (option `Lines` in KPOINTS)
needed for Bloch spectral function calculations is not possible at the moment.
The definition of a projector set starts with specifying which sites
and which local states we are going to project onto.
This information is provided by option LOCPROJ
* The interface currently supports only collinear-magnetism calculation
(this implis no spin-orbit coupling) and
spin-polarized projectors have not been tested.
A detailed description of the VASP converter tool PLOVasp can be found
in :ref:`plovasp`. Here, a quick-start guide is presented.
The VASP interface relies on new options introduced since version
5.4.x. In particular, a new INCAR-option `LOCPROJ`
and new `LORBIT` modes 13 and 14 have been added.
Option `LOCPROJ` selects a set of localized projectors that will
be written to file `LOCPROJ` after a successful VASP run.
A projector set is specified by site indices,
labels of the target local states, and projector type:
| `LOCPROJ = <sites> : <shells> : <projector type>`
where `<sites>` represents a list of site indices separated by spaces,
with the indices corresponding to the site position in the POSCAR file;
`<shells>` specifies local states (e.g. :math:`s`, :math:`p`, :math:`d`,
:math:`d_{x^2-y^2}`, etc.);
`<shells>` specifies local states (see below);
`<projector type>` chooses a particular type of the local basis function.
The recommended projector type is `Pr 2`.
Some projector types also require parameters `EMIN`, `EMAX` in INCAR to
be set to define an (approximate) energy window corresponding to the
valence states.
The allowed labels of the local states defined in terms of cubic
harmonics are:
When either a self-consistent (`ICHARG < 10`) or a non-self-consistent
(`ICHARG >= 10`) calculation is done VASP produces file `LOCPROJ` which
will serve as the main input for the conversion routine.
* Entire shells: `s`, `p`, `d`, `f`
* `p`-states: `py`, `pz`, `px`
* `d`-states: `dxy`, `dyz`, `dz2`, `dxz`, `dx2-y2`
* `f`-states: `fy(3x2-y2)`, `fxyz`, `fyz2`, `fz3`,
`fxz2`, `fz(x2-y2)`, `fx(x2-3y2)`.
For projector type `Pr 2`, one should also set `LORBIT = 14` in INCAR
and provide parameters `EMIN`, `EMAX` which, in this case, define an
energy range (window) corresponding to the valence states. Note that as in the case
of DOS calculation the position of the valence states depends on the
Fermi level.
For example, in case of SrVO3 one may first want to perform a self-consistent
calculation, then set `ICHARGE = 1` and add the following additional
lines into INCAR (provided that V is the second ion in POSCAR):
| `EMIN = 3.0`
| `EMAX = 8.0`
| `LORBIT = 14`
| `LOCPROJ = 2 : d : Pr 2`
The energy range does not have to be precise. Important is that it has a large
overlap with valence bands and no overlap with semi-core or high unoccupied states.
Conversion for the DMFT self-consistency cycle
""""""""""""""""""""""""""""""""""""""""""""""
In order to use the projectors generated by VASP for defining an
impurity problem they must be processed, i.e. normalized, possibly
transformed, and then converted to a format suitable for DFT_tools scripts.
The projectors generated by VASP require certain post-processing before
they can be used for DMFT calculations. The most important step is to normalize
them within an energy window that selects band states relevant for the impurity
problem. Note that this energy window is different from the one described above
and it must be chosen independently of the energy
range given by `EMIN, EMAX` in INCAR.
Currently, it is necessary to add the Fermi energy by hand as the fifth value
in the first line of the LOCPROJ file before the next steps can be executed.
Post-processing of `LOCPROJ` data is generally done as follows:
The processing of projectors is performed by the program :program:`plovasp`
invoked as
#. Prepare an input file `<name>.cfg` (e.g., `plo.cfg`) that describes the definition
of your impurity problem (more details below).
| `plovasp <plo.cfg>`
#. Extract the value of the Fermi level from OUTCAR and paste at the end of
the first line of LOCPROJ.
where `<plo.cfg>` is a input file controlling the conversion of projectors.
#. Run :program:`plovasp` with the input file as an argument, e.g.:
The format of input file `<plo.cfg>` is described in details in
| `plovasp plo.cfg`
This requires that the TRIQS paths are set correctly (see Installation
of TRIQS).
If everything goes right one gets files `<name>.ctrl` and `<name>.pg1`.
These files are needed for the converter that will be invoked in your
DMFT script.
The format of input file `<name>.cfg` is described in details in
:ref:`plovasp`. Here we just give a simple example for the case
of SrVO3:
@ -257,7 +301,7 @@ Option **TRANSFORM** is optional but here it is specified to extract
only three :math:`t_{2g}` orbitals out of five `d` orbitals given by
:math:`l = 2`.
For the conversion to a h5 file we use on the python level (in analogy to the Wien2kConverter)::
The conversion to a h5-file is performed in the same way as for Wien2TRIQS::
from triqs_dft_tools.converters.vasp_converter import *
Converter = VaspConverter(filename = filename)
@ -265,12 +309,15 @@ For the conversion to a h5 file we use on the python level (in analogy to the Wi
As usual, the resulting h5-file can then be used with the SumkDFT class.
Note that the automatic detection of the correct blockstructure might fail for VASP inputs.
This can be circumvented by increase the :class:`SumkDFT <dft.sumk_dft.SumkDFT>` threshold to e.g.::
Note that the automatic detection of the correct block structure might
fail for VASP inputs.
This can be circumvented by setting a bigger value of the threshold in
:class:`SumkDFT <dft.sumk_dft.SumkDFT>`, e.g.::
SK.analyse_block_structure(threshold = 1e-4)
However, only do this after a careful study of the density matrix and the dos in the wannier basis.
However, do this only after a careful study of the density matrix and
the projected DOS in the localized basis.
A general H(k)
--------------