mirror of
https://github.com/triqs/dft_tools
synced 2025-01-03 01:55:56 +01:00
Added docs on PLOVasp
Added description of the input file and a general section on the interface. Also, an example input file for SrVO3 is added.
This commit is contained in:
parent
6b89a0a6f0
commit
54022c3952
@ -181,6 +181,70 @@ since we need also the :program:`optics` package of Wien2k. Please
|
|||||||
look at the section on :ref:`Transport` to see how to do the necessary
|
look at the section on :ref:`Transport` to see how to do the necessary
|
||||||
steps, including the conversion.
|
steps, including the conversion.
|
||||||
|
|
||||||
|
Interface with VASP
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
The interface with VASP relies on new options introduced since
|
||||||
|
version 5.4.x. The output of raw (non-normalized) projectors is
|
||||||
|
controlled by an INCAR option LOCPROJ whose complete syntax is described in
|
||||||
|
VASP documentaion.
|
||||||
|
|
||||||
|
The definition of a projector set starts with specifying which sites
|
||||||
|
and which local states we are going to projecto onto.
|
||||||
|
This information is provided using option LOCPROJ
|
||||||
|
|
||||||
|
| `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.);
|
||||||
|
`<projector type>` chooses a particular type of the local basis function.
|
||||||
|
|
||||||
|
Some projector types also require parameters `EMIN`, `EMAX` in INCAR to
|
||||||
|
be set to define an (approximate) energy window corresponding to the
|
||||||
|
valence states.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
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 processing of projectors is performed by the program :program:`plovasp`
|
||||||
|
invoked as
|
||||||
|
|
||||||
|
| `plovasp <plo.cfg>`
|
||||||
|
|
||||||
|
where `<plo.cfg>` is a input file controlling the conversion of projectors.
|
||||||
|
|
||||||
|
The format of input file `<plo.cfg>` is described in details in
|
||||||
|
:ref:`plovasp`. Here we just give a simple example for the case
|
||||||
|
of SrVO3:
|
||||||
|
|
||||||
|
.. literalinclude:: images_scripts/srvo3.cfg
|
||||||
|
|
||||||
|
A projector shell is defined by a section `[Shell 1]` where the number
|
||||||
|
can be arbitrary and used only for user convenience. Several
|
||||||
|
parameters are required
|
||||||
|
|
||||||
|
- **IONS**: list of site indices which must be a subset of indices
|
||||||
|
given earlier in `LOCPROJ`.
|
||||||
|
- **LSHELL**: :math:`l`-quantum number of the projector shell; the corresponding
|
||||||
|
orbitals must be present in `LOCPROJ`.
|
||||||
|
- **EWINDOW**: energy window in which the projectors are normalized;
|
||||||
|
note that the energies are defined with respect to the Fermi level.
|
||||||
|
|
||||||
|
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`.
|
||||||
|
|
||||||
|
|
||||||
A general H(k)
|
A general H(k)
|
||||||
--------------
|
--------------
|
||||||
|
8
doc/guide/images_scripts/srvo3.cfg
Normal file
8
doc/guide/images_scripts/srvo3.cfg
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[Shell 1]
|
||||||
|
LSHELL = 2
|
||||||
|
IONS = 2
|
||||||
|
EWINDOW = -1.45 1.8
|
||||||
|
|
||||||
|
TRANSFORM = 1.0 0.0 0.0 0.0 0.0
|
||||||
|
0.0 1.0 0.0 0.0 0.0
|
||||||
|
0.0 0.0 0.0 1.0 0.0
|
@ -25,7 +25,7 @@ raw projectors. Note, however, that DFTtools does not support projector
|
|||||||
groups at the moment but this feature might appear in future releases.
|
groups at the moment but this feature might appear in future releases.
|
||||||
|
|
||||||
A set of projectors defined on sites realted to each other either by symmetry
|
A set of projectors defined on sites realted to each other either by symmetry
|
||||||
or by sort along with a set of `l`, `m` quantum numbers forms a
|
or by sort along with a set of :math:`l`, :math:`m` quantum numbers forms a
|
||||||
`projector shell`. There could be several projectors shells in a
|
`projector shell`. There could be several projectors shells in a
|
||||||
projector group, implying that they will be normalized within
|
projector group, implying that they will be normalized within
|
||||||
the same energy window.
|
the same energy window.
|
||||||
@ -45,13 +45,97 @@ A PLOVasp input file can contain three types of sections:
|
|||||||
#. **[General]**: includes parameters that are independent
|
#. **[General]**: includes parameters that are independent
|
||||||
of a particular projector set, such as the Fermi level, additional
|
of a particular projector set, such as the Fermi level, additional
|
||||||
output (e.g. the density of states), etc.
|
output (e.g. the density of states), etc.
|
||||||
|
|
||||||
#. **[Group <Ng>]**: describes projector groups, i.e. a set of
|
#. **[Group <Ng>]**: describes projector groups, i.e. a set of
|
||||||
projectors sharing the same energy window and normalization type.
|
projectors sharing the same energy window and normalization type.
|
||||||
At the moment, DFTtools support only one projector group, therefore
|
At the moment, DFTtools support only one projector group, therefore
|
||||||
there should be no more than one projector group.
|
there should be no more than one projector group.
|
||||||
|
|
||||||
#. **[Shell <Ns>]**: contains parameters of a projector shell labelled
|
#. **[Shell <Ns>]**: contains parameters of a projector shell labelled
|
||||||
with `<Ns>`. If there is only one group section and one shell section,
|
with `<Ns>`. If there is only one group section and one shell section,
|
||||||
the group section can be omitted and its required parameters can be
|
the group section can be omitted and its required parameters can be
|
||||||
given inside the single shell section.
|
given inside the single shell section.
|
||||||
|
|
||||||
|
Section [General]
|
||||||
|
"""""""""""""""""
|
||||||
|
|
||||||
|
The entire section is optional and it contains three parameters:
|
||||||
|
|
||||||
|
* **BASENAME** (string): provides a base name for output files.
|
||||||
|
Default filenames are :file:`vasp.*`.
|
||||||
|
* **DOSMESH** ([float float] integer): if this parameter is given
|
||||||
|
projected density of states for each projected orbital will be
|
||||||
|
evaluated and stored to files :file:`pdos_<n>.dat`, where `n` is the
|
||||||
|
orbital number. The energy
|
||||||
|
mesh is defined by three numbers: `EMIN` `EMAX` `NPOINTS`. The first two
|
||||||
|
can be omitted in which case they are taken to be equal to the projector
|
||||||
|
energy window. **Important note**: at the moment this option works
|
||||||
|
only if the tetrahedron integration method (`ISMEAR = -4` or `-5`)
|
||||||
|
is used in VASP to produce `LOCPROJ`.
|
||||||
|
* **EFERMI** (float): provides the Fermi level. This value overrides
|
||||||
|
the one extracted from VASP output files.
|
||||||
|
|
||||||
|
There are no required parameters in this section.
|
||||||
|
|
||||||
|
Section [Shell]
|
||||||
|
"""""""""""""""
|
||||||
|
|
||||||
|
This section specifies a projector shell. Each shell section must be
|
||||||
|
labeled by an index, e.g. `[Shell 1]`. These indices can then be referenced
|
||||||
|
in a `[Group]` section.
|
||||||
|
|
||||||
|
In each `[Shell]` section two parameters are required:
|
||||||
|
|
||||||
|
* **IONS** (list of integer): indices of sites included in the shell.
|
||||||
|
The sites can be given either by a list of integers `IONS = 5 6 7 8`
|
||||||
|
or by a range `IONS = 5..8`. The site indices must be compatible with
|
||||||
|
POSCAR file.
|
||||||
|
* **LSHELL** (integer): :math:`l` quantum number of the desired local states.
|
||||||
|
|
||||||
|
It is important that a given combination of site indices and local states
|
||||||
|
given by `LSHELL` must be present in LOCPROJ file.
|
||||||
|
|
||||||
|
There are additional optional parameters that allow one to transform
|
||||||
|
the local states:
|
||||||
|
|
||||||
|
* **TRANSFORM** (matrix): local transformation matrix applied to all states
|
||||||
|
in the projector shell. The matrix is defined by (multiline) block
|
||||||
|
of floats, with each line corresponding to a row. The number of columns
|
||||||
|
must be equal to :math:`2 l + 1`, with :math:`l` given by `LSHELL`. Only real matrices
|
||||||
|
are allowed. This parameter can be useful to select certain subset of
|
||||||
|
orbitals or perform a simple global rotation.
|
||||||
|
* **TRANSFILE** (string): name of the file containing transformation
|
||||||
|
matrices for each site. This option allows for a full-fledged functionality
|
||||||
|
when it comes to local state transformations. The format of this file
|
||||||
|
is described in :ref:`_transformation_file`.
|
||||||
|
|
||||||
|
Section [Group]
|
||||||
|
"""""""""""""""
|
||||||
|
|
||||||
|
Each defined projector shell must be part of a projector group. In the current
|
||||||
|
implementation of DFTtools only a single group is supported which can be
|
||||||
|
labeled by any integer, e.g. `[Group 1]`. This implies that all projector shells
|
||||||
|
must be included in this group.
|
||||||
|
|
||||||
|
Required parameters for any group are the following:
|
||||||
|
|
||||||
|
* **SHELLS** (list of integers): indices of projector shells included in the group.
|
||||||
|
All defined shells must be grouped.
|
||||||
|
* **EWINDOW** (float float): the energy window specified by two floats: bottom
|
||||||
|
and top. All projectors in the current group are going to be normalized within
|
||||||
|
this window.
|
||||||
|
|
||||||
|
Optional group parameters:
|
||||||
|
|
||||||
|
* **NORMALIZE** (True/False): specifies whether projectors in the group are
|
||||||
|
to be noramlized. The default value is **True**.
|
||||||
|
* **NORMION** (True/False): specifies whether projectors are normalized on
|
||||||
|
a per-site (per-ion) basis. That is, if `NORMION = True` the orthogonality
|
||||||
|
condition will be enforced on each site separately but the Wannier functions
|
||||||
|
on different sites will not be orthogonal. If `NORMION = False` Wannier functions
|
||||||
|
on different sites included in the group will be orthogonal to each other.
|
||||||
|
|
||||||
|
|
||||||
|
.. _transformation_file
|
||||||
|
|
||||||
|
File of transformation matrices
|
||||||
|
"""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user