Commit c62a2dd2 authored by Christoph Friedrich's avatar Christoph Friedrich

Few amendments.

parent 41f7d651
......@@ -270,7 +270,7 @@ Sometimes it is necessary to specify a particular spatial orientation of Wannier
give Euler angles (in degrees), for example, ``(s,px,30,60,-90,d)``, through which the Wannier orbital (of p\ :sub:`x`
symmetry in this case) is rotated.
The so-generated Wannier function ares *first-guess* Wannier functions. To be more precise,
The so-generated Wannier function are *first-guess* Wannier functions. To be more precise,
the expansion coefficients :math:`U_{\mathbf{k}n,m}` are obtained from projecting the Bloch functions
:math:`\varphi_{\mathbf{k}n}` onto localized functions with the chosen orbital character. Then, an
orthonormalization procedure is applied to make the Wannier set orthonormal. For many purposes, the
......@@ -331,7 +331,7 @@ RESTART
If ``RESTART`` is set, Spex writes the Wannier functions (the *U* matrix) to the file "spex.uwan"
if it does not exist. Otherwise, the Wannier functions are read from "spex.uwan". In the same way
the file "spex.kolap" is written or read containing the overlap of wavefunctions at neighboring
k points. These quantities are needed for the maximalization procedure. (The file "spex.kolap" can be reused
k points. These overlaps are needed for the maximalization procedure. (The file "spex.kolap" can be reused
if the orbitals in ``ORBITALS`` are changed but not the outer energy window, i.e., the first two
arguments.)
......
......@@ -167,13 +167,13 @@ As the table can be very large, there is a possibility to choose the atom type i
ENERGY
--------
(*) In some cases, it may be necessary to replace the energy eigenvalues, provided by the mean-field (DFT) code,
by energies (e.g., *GW* quasiparticle energies) obtained in a previous Spex calculation, for example,
(*) In some cases, it may be necessary to replace the energy eigenvalues, provided by the mean-field (DFT) calculation,
by energies (e.g., *GW* quasiparticle energies) obtained in a previous Spex run, for example,
to determine the *GW* Fermi energy or to perform energy-only self-consistent calculations.
This can be achieved with the keyword ``ENERGY file``, where "file" contains the new energies in eV.
The format of "file" corresponds to the output of the ``spex.extr`` utility: ``spex.extr g spex.out > file``.
It must be made sure that "file" contains energy values for the whole irreducible Brillouin zone.
Band energies not contained in "file" will be adjusted so that the energies are in accending order
Band energies not contained in "file" will be adjusted so that the energies are in ascending order
(provided that there is at least one energy value for the particular k point).
.. list-table:: Example
......@@ -196,7 +196,6 @@ PLUSSOC
-------
(*) With this keyword, Spex adds spin-orbit coupling (SOC) to the mean-field solution using a one-shot second-variation approach and stops,
so it is non-iterative but updates the wavefunctions and energies.
This can be used, for example, to include SOC to a previous *GW* calculation that has been carried out without SOC.
The new energies are written to standard output and, together with the new wavefunctions, to new input files on the harddisc,
thus overwriting the old input data. In the case of Fleur, the modified files are "gwa", "KS.hdf", and "spex.sym".
The latter is written only if the system is spin polarized (non-collinear magnetism). It has the same form as "sym.out".
......
......@@ -5,7 +5,7 @@ General information
===================
Although the Spex executable can have different names (e.g., "spex.inv", "spex.noinv"),
we assume that spex is the name of the executable in the following.
we assume that "spex" is the name of the executable in the following.
(This can be achieved by using the caller utility, see the file "INSTALL".)
.. note:: Paragraphs discussing advanced options are preceded with (*), and the ones about obsolete, unmaintained, or experimental options are marked with (**). You can safely skip the paragraphs marked with (*) and (**) at first reading.
......
......@@ -7,12 +7,14 @@ Getting Started
This section is intended to give a first impression on how a typical calculation is carried out. Details are given in later sections.
Many-body perturbation theory is defined with respect to a formally unperturbed system, i.e., a system without electron-electron interaction.
Any mean-field theory, e.g., Hartree-Fock or Kohn-Sham (KS) DFT, provides such a system. Thus, before running Spex, we must find a self-consistent
Any mean-field theory, e.g., Hartree-Fock or Kohn-Sham (KS) DFT, provides such a system.
(For simplicity of presentation, we will assume throughout this manual that KS-DFT is used for the reference system.)
Thus, before running Spex, we must find a self-consistent
mean-field solution. Normally this first step is fast and we can use a dense k-point set. For the calculation with Spex, we have to generate a new
(and usually coarser) k-point set and calculate the corresponding wavefunctions and energies with the mean-field program in a second run.
(and usually coarser) k-point set and calculate the corresponding wavefunctions and energies with the mean-field program in a second run.
Thus, a typical procedure is
1. self-consistent DFT calculation (e.g. with Fleur),
1. self-consistent DFT calculation (e.g., with Fleur),
2. generate new k-point set with Spex,
3. second run of the DFT program to generate the eigenstates at the new k points,
4. finally run Spex.
......@@ -23,7 +25,7 @@ For the first and third step consult the manual of your DFT program. (The `Fleur
:numref:`SpexandFleur`, you must set ``gw=1`` and ``gw=2`` for the first and third step, respectively.)
For the second and fourth step you need to create an input file "spex.inp" for Spex. A very simple input file for a *GW* calculation of Si is this:
.. _Fleur manual: http://www.flapw.de/pm/index.php?n=User-Documentation.FLEUR
.. _Fleur manual: http://www.flapw.de/pm/index.php?n=User-Documentation.FLEUR
.. code-block:: bash
......
......@@ -34,3 +34,21 @@ Enter ``./configure -h`` for a full list of configuration options.
.. note:: If the configuration fails, the file "config.log" should be consulted for more details about the failure.
In most cases, the compiler does not find a required library or an include file, in which case the corresponding
directories must be specified with the environment variables LDFLAGS and FCFLAGS, respectively. (Consult your Unix or Linux manual.)
The compilation creates the executables
"spex.inv"
for systems with inversion symmetry and without spin-orbit coupling,
"spex.noinv"
for systems without inversion symmetry or with spin-orbit coupling,
"spex.x"
caller utility,
"spex.extr"
data extraction utility,
which may be installed with ``make install``. Installation is optional. See the file "INSTALL" for details.
......@@ -65,10 +65,10 @@ Usage
Error Messages
--------------
.. highlights:: This is not a complete list of errors. In many error messages a possible solution is already indicated. These are not listed.
The program might also stop at places where this is not supposed to happen. Then, the error message starts with ``SPEX-BUG`` (see :numref:`spex.out`).
In this case you should contact the programmers. Error messages have the form ``SPEX-ERROR (source.f:0123) Error message``, where
"source.f" is the name of the source file and 0123 is the respective line where the error occurred. We shorten this to ``(source.f) Error message`` in this list.
This is not a complete list of errors. In many error messages a possible solution is already indicated. These are not listed.
The program might also stop at places where this is not supposed to happen. Then, the error message starts with ``SPEX-BUG`` (see :numref:`spex.out`).
In this case you should contact the programmers. Error messages have the form ``SPEX-ERROR (source.f:0123) Error message``, where
"source.f" is the name of the source file and 0123 is the respective line where the error occurred. We shorten this to ``(source.f) Error message`` in this list.
**error while loading shared libraries: lib...: cannot open shared object file: No such file or directory**
......@@ -77,7 +77,7 @@ Error Messages
**(read_write.f) k-point sets inconsistent (check ...)**
.. highlights:: This error usually occurs if the k-point set defined in "spex.inp" (keyword ``BZ``) conflicts with the one the DFT code has used
.. highlights:: This error usually occurs if the k-point set defined in "spex.inp" (keyword ``BZ``) conflicts with the one the DFT program has used
for writing the input data. Make sure that the k-point sets are identical by generating the k-point set with Spex and running the one-shot
DFT calculation in the proper order (steps 2 and 3 in :numref:`getting_started`). (Only for older versions:)
The error can also be caused by the internal structure of the direct-access binary file
......@@ -105,20 +105,20 @@ Error Messages
**(getinput.f) Defective symmetry transformation matrix.**
.. highlights:: A calculated symmetry transformation matrix turned out to be non-unitary. This is usually caused by insufficient precision of
the lattice basis vectors provided by the DFT code. The obvious solution is to make sure that the lattice basis vectors are defined with
sufficient precision in the DFT code. In particular, they have to conform to the crystal symmetries with a precision of at least ten
the lattice basis vectors provided by the DFT program. The obvious solution is to make sure that the lattice basis vectors are defined with
sufficient precision in the DFT calculation. In particular, they have to conform to the crystal symmetries with a precision of at least twelve
significant digits.
**(getinput.f) Symmetry operation ... rotates spin quantization axis.**
.. highlights:: Similarly to the previous one, this error is caused by insufficient precision: Spex expects the spin-quantization axis to
be invariant with respect to the crystal symmetries in the case of non-collinear magnetism. Obvious solution: Make sure that the spin-quantization axis
is defined with sufficient precision in the DFT code.
is defined with sufficient precision in the DFT run.
| **(irreps.f) Broken unitarity ...**
| **(irreps.f) Deviation in characters; too large irrep threshold increase: ...**
.. highlights:: Both errors are caused by eigenstates (read from the DFT code) that are symmetry broken, i.e., they do not reflect sufficiently
.. highlights:: Both errors are caused by eigenstates (read from the DFT output) that are symmetry broken, i.e., they do not reflect sufficiently
the crystal symmetries. This could be a problem of the DFT code. At the moment, there is no general solution to this problem. The second
error can be circumvented, though, by setting the parameter ``irrep_threshold`` in "irreps.f" to 0, which might lead to slower calculations.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment