Commit 108761af authored by Anoop Chandran's avatar Anoop Chandran

all tables fixed

parent 1f9f6376
...@@ -33,10 +33,10 @@ GCUT (MBASIS) ...@@ -33,10 +33,10 @@ GCUT (MBASIS)
--------------- ---------------
If :math:`{N}` is the number of LAPW basis functions, one would naively expect the number of product functions to be roughly :math:`{N^2}`. In the case of the interstitial plane waves, this is not so, since, with a cutoff :math:`{g_\mathrm{max}}`, the maximum momentum of the product would be :math:`{2g_\mathrm{max}}`, leading to :math:`{8N}` as the number of product plane waves. Fortunately, it turns out that the basis size can be much smaller in practice. Therefore, we introduce a reciprocal cutoff radius :math:`{G_\mathrm{max}}` for the interstitial plane waves and find that, instead of :math:`{G_\mathrm{max}=2g_\mathrm{max}}`, good convergence is achieved already with :math:`{G_\mathrm{max}=0.75g_\mathrm{max}}`, the default value. The parameter :math:`{G_\mathrm{max}}` can be set to a different value with the keyword ``GCUT`` in the section ``MBASIS`` of the input file. If :math:`{N}` is the number of LAPW basis functions, one would naively expect the number of product functions to be roughly :math:`{N^2}`. In the case of the interstitial plane waves, this is not so, since, with a cutoff :math:`{g_\mathrm{max}}`, the maximum momentum of the product would be :math:`{2g_\mathrm{max}}`, leading to :math:`{8N}` as the number of product plane waves. Fortunately, it turns out that the basis size can be much smaller in practice. Therefore, we introduce a reciprocal cutoff radius :math:`{G_\mathrm{max}}` for the interstitial plane waves and find that, instead of :math:`{G_\mathrm{max}=2g_\mathrm{max}}`, good convergence is achieved already with :math:`{G_\mathrm{max}=0.75g_\mathrm{max}}`, the default value. The parameter :math:`{G_\mathrm{max}}` can be set to a different value with the keyword ``GCUT`` in the section ``MBASIS`` of the input file.
+---------+--------------+--+------------------------------------------------+ +---------+--------------+---------------------------------------------------+
| Example | ``GCUT 2.9`` | | Use a reciprocal cutoff radius of 2.9 | | Example | ``GCUT 2.9`` | | Use a reciprocal cutoff radius of 2.9 |
| | | | :math:`Bohr^{-1}` for the product plane waves. | | | | | :math:`Bohr^{-1}` for the product plane waves. |
+---------+--------------+--+------------------------------------------------+ +---------+--------------+---------------------------------------------------+
.. _lcut: .. _lcut:
...@@ -54,14 +54,17 @@ In the LAPW basis, the matching conditions at the MT boundaries require large :m ...@@ -54,14 +54,17 @@ In the LAPW basis, the matching conditions at the MT boundaries require large :m
+----------+--------------------------------+------------------------------------------------------------------------------------------------------------------+ +----------+--------------------------------+------------------------------------------------------------------------------------------------------------------+
| Examples | ``SELECT 2;3`` | | Use products of :math:`{u_{lp} u_{l'p'}}` with :math:`{l\le 2}` and :math:`{l'\le 3}` | | Examples | ``SELECT 2;3`` | | Use products of :math:`{u_{lp} u_{l'p'}}` with :math:`{l\le 2}` and :math:`{l'\le 3}` |
| | | | for :math:`{p=0}` (so-called :math:`{u}`) and no function of :math:`{p=1}` (so-called :math:`{\dot{u}}`). | | | | | for :math:`{p=0}` (so-called :math:`{u}`) and no function |
| | | | of :math:`{p=1}` (so-called :math:`{\dot{u}}`). |
+----------+--------------------------------+------------------------------------------------------------------------------------------------------------------+ +----------+--------------------------------+------------------------------------------------------------------------------------------------------------------+
| | ``SELECT 2,1;3,2`` | | Same as before but also include the :math:`{\dot{u}}` functions with :math:`{l\le 2}` and :math:`{l'\le 3}`. | | | ``SELECT 2,1;3,2`` | | Same as before but also include the :math:`{\dot{u}}` functions |
| | | | with :math:`{l\le 2}` and :math:`{l'\le 3}`. |
+----------+--------------------------------+------------------------------------------------------------------------------------------------------------------+ +----------+--------------------------------+------------------------------------------------------------------------------------------------------------------+
| | ``SELECT 2,,1100;3,,1111`` | | Same as first line but also include the local orbitals | | | ``SELECT 2,,1100;3,,1111`` | | Same as first line but also include the local orbitals |
| | | | :math:`{p\ge 2}`, which are selected (deselected) by "1" ("0"): | | | | | :math:`{p\ge 2}`, which are selected (deselected) by "1" ("0"): |
| | | | here, the first two and all four LOs, respectively. The default behavior is | | | | | here, the first two and all four LOs, respectively. |
| | | | to include semicore LOs but to exclude the ones at higher energies. | | | | | The default behavior is to include semicore LOs but to |
| | | | exclude the ones at higher energies. |
+----------+--------------------------------+------------------------------------------------------------------------------------------------------------------+ +----------+--------------------------------+------------------------------------------------------------------------------------------------------------------+
| | ``SELECT 2,1,1100;3,2,1111`` | | Same as second line with the LOs. | | | ``SELECT 2,1,1100;3,2,1111`` | | Same as second line with the LOs. |
+----------+--------------------------------+------------------------------------------------------------------------------------------------------------------+ +----------+--------------------------------+------------------------------------------------------------------------------------------------------------------+
...@@ -73,7 +76,8 @@ TOL (MBASIS) ...@@ -73,7 +76,8 @@ TOL (MBASIS)
(*) The set of MT products selected by ``SELECT`` can still be highly linearly dependent. Therefore, in a subsequent optimization step one diagonalizes the MT overlap matrix and retains only those eigenfunctions whose eigenvalues exceed a predefined tolerance value. This tolerance is 0.0001 by default and can be changed with the keyword ``TOL`` in the input file. (*) The set of MT products selected by ``SELECT`` can still be highly linearly dependent. Therefore, in a subsequent optimization step one diagonalizes the MT overlap matrix and retains only those eigenfunctions whose eigenvalues exceed a predefined tolerance value. This tolerance is 0.0001 by default and can be changed with the keyword ``TOL`` in the input file.
+---------+-----------------+-------------------------------------------------------------------------------+ +---------+-----------------+-------------------------------------------------------------------------------+
| Example | ``TOL 0.00001`` | Remove linear dependencies that fall below a tolerance of 0.00001 (see text). | | Example | ``TOL 0.00001`` | | Remove linear dependencies that fall below a |
| | | | tolerance of 0.00001 (see text). |
+---------+-----------------+-------------------------------------------------------------------------------+ +---------+-----------------+-------------------------------------------------------------------------------+
OPTIMIZE (MBASIS) OPTIMIZE (MBASIS)
...@@ -81,13 +85,16 @@ OPTIMIZE (MBASIS) ...@@ -81,13 +85,16 @@ OPTIMIZE (MBASIS)
The mixed product basis can still be quite large. In the calculation of the screened interaction, each matrix element, when represented in the basis of Coulomb eigenfunctions, is multiplied by :math:`{\sqrt{v_\mu v_\nu}}` with the Coulomb eigenvalues :math:`{\{v_\mu\}}`. This gives an opportunity for reducing the basis-set size further by introducing a Coulomb cutoff :math:`{v_\mathrm{min}}`. The reduced basis set is then used for the polarization function, the dielectric function, and the screened interaction. The parameter :math:`{v_\mathrm{min}}` can be specified after the keyword ``OPTIMIZE MB`` in three ways: first, as a "pseudo" reciprocal cutoff radius :math:`{\sqrt{4\pi/v_\mathrm{min}}}` (which derives from the plane-wave Coulomb eigenvalues :math:`{v_\mathbf{G}=4\pi/G^2}`), second, directly as the parameter :math:`{v_\mathrm{min}}` by using a negative real number, and, finally, as the number of basis functions that should be retained when given as an integer. The so-defined basis functions are mathematically close to plane waves. For testing purposes, one can also enforce the usage of plane waves (or rather projections onto plane waves) with the keyword ``OPTIMIZE PW``, in which case the Coulomb matrix is known analytically. No optimization of the basis is applied, if ``OPTIMIZE`` is omitted. The mixed product basis can still be quite large. In the calculation of the screened interaction, each matrix element, when represented in the basis of Coulomb eigenfunctions, is multiplied by :math:`{\sqrt{v_\mu v_\nu}}` with the Coulomb eigenvalues :math:`{\{v_\mu\}}`. This gives an opportunity for reducing the basis-set size further by introducing a Coulomb cutoff :math:`{v_\mathrm{min}}`. The reduced basis set is then used for the polarization function, the dielectric function, and the screened interaction. The parameter :math:`{v_\mathrm{min}}` can be specified after the keyword ``OPTIMIZE MB`` in three ways: first, as a "pseudo" reciprocal cutoff radius :math:`{\sqrt{4\pi/v_\mathrm{min}}}` (which derives from the plane-wave Coulomb eigenvalues :math:`{v_\mathbf{G}=4\pi/G^2}`), second, directly as the parameter :math:`{v_\mathrm{min}}` by using a negative real number, and, finally, as the number of basis functions that should be retained when given as an integer. The so-defined basis functions are mathematically close to plane waves. For testing purposes, one can also enforce the usage of plane waves (or rather projections onto plane waves) with the keyword ``OPTIMIZE PW``, in which case the Coulomb matrix is known analytically. No optimization of the basis is applied, if ``OPTIMIZE`` is omitted.
+----------+-----------------------+-------------------------------------------------------------------------------------------------------------+ +----------+-----------------------+-------------------------------------------------------------------------------------------------------------+
| Examples | ``OPTIMIZE MB 4.0`` | Optimize the mixed product basis by removing eigenfunctions with eigenvalues below ``4\pi/4.5^2``. | | Examples | ``OPTIMIZE MB 4.0`` | | Optimize the mixed product basis by removing eigenfunctions |
| | | | with eigenvalues below ``4\pi/4.5^2``. |
+----------+-----------------------+-------------------------------------------------------------------------------------------------------------+ +----------+-----------------------+-------------------------------------------------------------------------------------------------------------+
| | ``OPTIMIZE MB -0.05`` | Optimize the mixed product basis by removing eigenfunctions with eigenvalues below ``0.05``. | | | ``OPTIMIZE MB -0.05`` | | Optimize the mixed product basis by removing eigenfunctions |
| | | | with eigenvalues below ``0.05``. |
+----------+-----------------------+-------------------------------------------------------------------------------------------------------------+ +----------+-----------------------+-------------------------------------------------------------------------------------------------------------+
| | ``OPTIMIZE MB 80`` | Retain only the eigenfunctions with the 80 largest eigenvalues. | | | ``OPTIMIZE MB 80`` | Retain only the eigenfunctions with the 80 largest eigenvalues. |
+----------+-----------------------+-------------------------------------------------------------------------------------------------------------+ +----------+-----------------------+-------------------------------------------------------------------------------------------------------------+
| | ``OPTIMIZE PW 4.5`` | Use projected plane waves with the cutoff ``4.5 \mathrm{Bohr}^{-1}`` (for testing only, can be quite slow). | | | ``OPTIMIZE PW 4.5`` | | Use projected plane waves with the cutoff :math:`{4.5 \mathrm{Bohr}^{-1}}` |
| | | | (for testing only, can be quite slow). |
+----------+-----------------------+-------------------------------------------------------------------------------------------------------------+ +----------+-----------------------+-------------------------------------------------------------------------------------------------------------+
In summary, there are a number of parameters that influence the accuracy of the basis set. Whenever a new physical system is investigated, it is recommendable to converge the basis set for that system. The parameters to consider in this respect are ``GCUT``, ``LCUT``, ``SELECT``, and ``OPTIMIZE``. In summary, there are a number of parameters that influence the accuracy of the basis set. Whenever a new physical system is investigated, it is recommendable to converge the basis set for that system. The parameters to consider in this respect are ``GCUT``, ``LCUT``, ``SELECT``, and ``OPTIMIZE``.
......
...@@ -41,13 +41,14 @@ Each Spex run needs a job definition, which defines what Spex should do, e.g., ` ...@@ -41,13 +41,14 @@ Each Spex run needs a job definition, which defines what Spex should do, e.g., `
Details of these jobs are explained in subsequent sections. The job definition must not be omitted but may be empty: ``JOB``, in which case Spex will just read the wavefunctions and energies, perform some checks and some elemental calculations (e.g., Wannier interpolation), and stop. In principle, Spex supports multiple jobs such as ``JOB GW 1:(1-5) DIELEC 1:{0:1,0.01}``. This feature is, however, seldom used and is not guaranteed to work correctly in all versions. Details of these jobs are explained in subsequent sections. The job definition must not be omitted but may be empty: ``JOB``, in which case Spex will just read the wavefunctions and energies, perform some checks and some elemental calculations (e.g., Wannier interpolation), and stop. In principle, Spex supports multiple jobs such as ``JOB GW 1:(1-5) DIELEC 1:{0:1,0.01}``. This feature is, however, seldom used and is not guaranteed to work correctly in all versions.
+----------+------------------------------------------+----------------------------------------------------------------------+ +----------+------------------------------------------+--------------------------------------------+
| Examples | ``JOB COSX 1:(1-5)`` | Perform COHSEX calculation. | | Examples | ``JOB COSX 1:(1-5)`` | Perform COHSEX calculation. |
+----------+------------------------------------------+----------------------------------------------------------------------+ +----------+------------------------------------------+--------------------------------------------+
| | ``JOB COSX 1:(1-5) SCREEN 2:{0:1,0.01}`` | Subsequently, calculate the screened interaction on a frequency mesh | | | ``JOB COSX 1:(1-5) SCREEN 2:{0:1,0.01}`` | | Subsequently, calculate the screened |
+----------+------------------------------------------+----------------------------------------------------------------------+ | | | | interaction on a frequency mesh |
| | ``JOB`` | Just perform some checks and stop | +----------+------------------------------------------+--------------------------------------------+
+----------+------------------------------------------+----------------------------------------------------------------------+ | | ``JOB`` | Just perform some checks and stop |
+----------+------------------------------------------+--------------------------------------------+
BZ BZ
----- -----
...@@ -68,6 +69,7 @@ This is an important keyword. It enables (a) continuing a calculation that has, ...@@ -68,6 +69,7 @@ This is an important keyword. It enables (a) continuing a calculation that has,
+----------+---------------+----------------------------------------------+ +----------+---------------+----------------------------------------------+
| Examples | ``RESTART`` | Read/write restart file | | Examples | ``RESTART`` | Read/write restart file |
+----------+---------------+----------------------------------------------+
| | ``RESTART 2`` | Try to reuse data from standard output files | | | ``RESTART 2`` | Try to reuse data from standard output files |
+----------+---------------+----------------------------------------------+ +----------+---------------+----------------------------------------------+
...@@ -116,19 +118,19 @@ BANDINFO ...@@ -116,19 +118,19 @@ BANDINFO
-------- --------
(*) 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, 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 (provided that there is at least one energy value for the particular k point). (*) 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, 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 (provided that there is at least one energy value for the particular k point).
+---------+-----------------------+-----------------------------------------------------------------------------------------------+ +---------+-----------------------+---------------------------------------------------------+
| Example | ``ENERGY energy.inp`` | | Replace the mean-field energy eigenvalues by the | | Example | ``ENERGY energy.inp`` | | Replace the mean-field energy eigenvalues by the |
| | | | energies provided in the file ``energy.inp`` | | | | | energies provided in the file ``energy.inp`` |
+---------+-----------------------+-----------------------------------------------------------------------------------------------+ +---------+-----------------------+---------------------------------------------------------+
DELTAEX DELTAEX
------- -------
(*) This keyword modifies the exchange splitting of a collinear magnetic system, i.e., it shifts spin-up and spin-down energies relative to to each other so as to increase or decrease the exchange splitting. With ``DELTAEX x``, the spin-up (spin-down) energies are lowered (elevated) by x/2. The parameter x can be used to enforce the Goldstone condition in spin-wave calculations [Phys. Rev. B 94, 064433 (2016)] (*) This keyword modifies the exchange splitting of a collinear magnetic system, i.e., it shifts spin-up and spin-down energies relative to to each other so as to increase or decrease the exchange splitting. With ``DELTAEX x``, the spin-up (spin-down) energies are lowered (elevated) by x/2. The parameter x can be used to enforce the Goldstone condition in spin-wave calculations [Phys. Rev. B 94, 064433 (2016)]
+---------+-------------------+---------------------------------------------------------------------------------------------------+ +---------+-------------------+---------------------------------------------------------------+
| Example | ``DELTAEX 0.2eV`` | | Increase the exchange splitting by 0.2eV | | Example | ``DELTAEX 0.2eV`` | | Increase the exchange splitting by 0.2eV |
| | | | (spin-up/down energies are decreased/increased by 0.1eV) | | | | | (spin-up/down energies are decreased/increased by 0.1eV) |
+---------+-------------------+---------------------------------------------------------------------------------------------------+ +---------+-------------------+---------------------------------------------------------------+
PLUSSOC PLUSSOC
------- -------
...@@ -138,17 +140,18 @@ ITERATE ...@@ -138,17 +140,18 @@ ITERATE
------- -------
(*) If specified, Spex only reads the LAPW basis set from the input data, provided by the mean-field (DFT) code, but performs the diagonalization of the Hamiltonian at the k points itself. This calculation effectively replaces the second run of the DFT code. In this sense, the name of the keyword is a bit misleading, as the calculation is non-iterative. The keyword ``ITERATE`` is mostly intended for testing and debugging. It is not available for executables compiled with ``-DLOAD`` (configured with ``--enable-load``). (*) If specified, Spex only reads the LAPW basis set from the input data, provided by the mean-field (DFT) code, but performs the diagonalization of the Hamiltonian at the k points itself. This calculation effectively replaces the second run of the DFT code. In this sense, the name of the keyword is a bit misleading, as the calculation is non-iterative. The keyword ``ITERATE`` is mostly intended for testing and debugging. It is not available for executables compiled with ``-DLOAD`` (configured with ``--enable-load``).
+----------+---------------------+----------------------------------------------------------------------------------+ +----------+---------------------+-------------------------------------------------------------------+
| Examples | ``ITERATE NR`` | Diagonalize a non-relativistic Hamiltonian | | Examples | ``ITERATE NR`` | Diagonalize a non-relativistic Hamiltonian |
+----------+---------------------+----------------------------------------------------------------------------------+ +----------+---------------------+-------------------------------------------------------------------+
| | ``ITERATE SR`` | Use scalar-relativity | | | ``ITERATE SR`` | Use scalar-relativity |
+----------+---------------------+----------------------------------------------------------------------------------+ +----------+---------------------+-------------------------------------------------------------------+
| | ``ITERATE FR`` | Also include SOC | | | ``ITERATE FR`` | Also include SOC |
+----------+---------------------+----------------------------------------------------------------------------------+ +----------+---------------------+-------------------------------------------------------------------+
| | ``ITERATE SR -1`` | Diagonalize scalar-relativistic Hamiltonian and neglect eigenvalues below -1 htr | | | ``ITERATE SR -1`` | | Diagonalize scalar-relativistic Hamiltonian and |
+----------+---------------------+----------------------------------------------------------------------------------+ | | | | neglect eigenvalues below -1 htr |
| | ``ITERATE FR STOP`` | Diagonalize relativistic Hamiltonian (including SOC), then stop | +----------+---------------------+-------------------------------------------------------------------+
+----------+---------------------+----------------------------------------------------------------------------------+ | | ``ITERATE FR STOP`` | Diagonalize relativistic Hamiltonian (including SOC), then stop |
+----------+---------------------+-------------------------------------------------------------------+
Parallelized version Parallelized version
==================== ====================
......
This diff is collapsed.
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