by Andris Gulans for exciting oxygen
Purpose: In this tutorial, you will learn what is a species file and what is the physics behind it.
1. What is a species file?
exciting, as a code based on plane-wave augmentation, distinguishes between the interstitial and muffin-tin regions. In the interstitial region, different quantities, such as wavefunctions, potential, and density, are described by means of plane waves. The quality (completeness) of this basis is determined by the maximum wavevector defined via either gmaxvr or rgkmax. Basis functions in the muffin-tin region are much more cumbersome to define, and thus require a detailed description. Furthermore, each muffin tin is associated with some atom with a certain nuclear charges, mass, etc. All this information is summarised in species files.
2. Content
Consider the standard species file for carbon.
<?xml version="1.0" encoding="UTF-8"?> <spdb xsi:noNamespaceSchemaLocation="../../xml/species.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sp chemicalSymbol="C" name="carbon" z="-6.00000" mass="21894.16673"> <muffinTin rmin="0.100000E-04" radius="1.4500" rinf="21.0932" radialmeshPoints="250"/> <atomicState n="1" l="0" kappa="1" occ="2.00000" core="true"/> <atomicState n="2" l="0" kappa="1" occ="2.00000" core="false"/> <atomicState n="2" l="1" kappa="1" occ="1.00000" core="false"/> <atomicState n="2" l="1" kappa="2" occ="1.00000" core="false"/> <basis> <default type="lapw" trialEnergy="0.1500" searchE="false"/> <custom l="0" type="apw+lo" trialEnergy="0.1500" searchE="true"/> <custom l="1" type="apw+lo" trialEnergy="0.1500" searchE="true"/> </basis> </sp> </spdb>
The information contained in the first two lines is not relevant for the physics of the system: They are only used to give advanced XML instructions to define the XML language, stylesheet, and schema (for further details on this topic, see XML and exciting data format). Concerning only the physical ground of this file and putting in evidence the different blocks by adding irrelevant blank lines, the file shown above can be we can be simplified as in the following.
<spdb> <sp chemicalSymbol="C" name="carbon" z="-6.00000" mass="21894.16673"> <muffinTin rmin="0.100000E-04" radius="1.4500" rinf="21.0932" radialmeshPoints="250"/> <atomicState n="1" l="0" kappa="1" occ="2.00000" core="true"/> <atomicState n="2" l="0" kappa="1" occ="2.00000" core="false"/> <atomicState n="2" l="1" kappa="1" occ="1.00000" core="false"/> <atomicState n="2" l="1" kappa="2" occ="1.00000" core="false"/> <basis> <default type="lapw" trialEnergy="0.1500" searchE="false"/> <custom l="0" type="apw+lo" trialEnergy="0.1500" searchE="true"/> <custom l="1" type="apw+lo" trialEnergy="0.1500" searchE="true"/> </basis> </sp> </spdb>
Concerning only the physical ground of the species file, we can identify four logical segments in the above example file.
- The first segment describes the properties of the nucleus.
<sp chemicalSymbol="C" name="carbon" z="-6.00000" mass="21894.16673">
- The second segment defines the radial grid associated with the atom of this kind.
<muffinTin rmin="0.100000E-04" radius="1.4500" rinf="21.0932" radialmeshPoints="250"/>
The names of attributes are self-explanatory. rmin is the radial coordinate of the innermost grid point. radius is the default value of the muffin-tin radius. Keep in mind that it may be and frequently is overridden in the input file. rinf is the coordinate of the effective infinity. This parameter is used in calculations of atoms during the initialisation and every time core states are calculated during the self-consistency steps. Finally, radialmeshPoints defines the number of grid points in the muffin tin. In practice, there will be more points between the muffin-tin boundary and the effective infinity, but their number is calculated automatically. Even though these attributes are not further discussed here, you should be aware that the default choice is not necessarily optimal. The choice of the muffin-tin radius clearly depends on interatomic distances and is system-dependent. Also rmin and radialmeshPoints are the parameters that you may want to occasionally explore.
- The third segment introduces division into core and valence states. Once again, the names of attribute are self-explanatory. As the only exception, the meaning of the quantum number kappa in exciting is not the same as in quantum mechanics textbooks. Here, kappa adopts the absolute value of the "textbook kappa". According to the standard species file, the shell 1s2 is assigned to the core, while 2s22p2 are considered as the valence shells.
<atomicState n="1" l="0" kappa="1" occ="2.00000" core="true"/> <atomicState n="2" l="0" kappa="1" occ="2.00000" core="false"/> <atomicState n="2" l="1" kappa="1" occ="1.00000" core="false"/> <atomicState n="2" l="1" kappa="2" occ="1.00000" core="false"/>
- The fourth segment describes the muffin-tin basis.
<basis> <default type="lapw" trialEnergy="0.1500" searchE="false"/> <custom l="0" type="apw+lo" trialEnergy="0.1500" searchE="true"/> <custom l="1" type="apw+lo" trialEnergy="0.1500" searchE="true"/> </basis>
The example above specifies that apw+lo is used for the
3. LAPW vs. APW+lo
LAPW
The muffin-tin part of the augmented-plane-wave (APW) basis is
(1)In order to make APW accurate, the energy parameter
where
One possibility how to implement the linearization are linearized augmented plane waves (LAPW). According to LAPW, the basis functions in muffin tins are defined as
(3)where the prefactors
<spdb> <sp chemicalSymbol="C" name="carbon" z="-6.00000" mass="21894.16673"> <muffinTin rmin="0.100000E-04" radius="1.4500" rinf="21.0932" radialmeshPoints="250"/> <atomicState n="1" l="0" kappa="1" occ="2.00000" core="true"/> <atomicState n="2" l="0" kappa="1" occ="2.00000" core="false"/> <atomicState n="2" l="1" kappa="1" occ="1.00000" core="false"/> <atomicState n="2" l="1" kappa="2" occ="1.00000" core="false"/> <basis> <default type="lapw" trialEnergy="0.15" searchE="false"/> <custom l="0" type="lapw" trialEnergy="-0.20" searchE="true"/> <custom l="1" type="lapw" trialEnergy="0.15" searchE="true"/> </basis> </sp> </spdb>
In this example, the energy parameters used for LAPW are
APW+lo
The alternative approach to implant the linearization is to introduce a different kind of basis functions - local orbitals. They are defined as
(4)in one particular muffin-tin and as 0 everywhere else. The example below shows how to transform your basis into APW+lo.
<spdb> <sp chemicalSymbol="C" name="carbon" z="-6.00000" mass="21894.16673"> <muffinTin rmin="0.100000E-04" radius="1.4500" rinf="21.0932" radialmeshPoints="250"/> <atomicState n="1" l="0" kappa="1" occ="2.00000" core="true"/> <atomicState n="2" l="0" kappa="1" occ="2.00000" core="false"/> <atomicState n="2" l="1" kappa="1" occ="1.00000" core="false"/> <atomicState n="2" l="1" kappa="2" occ="1.00000" core="false"/> <basis> <default type="apw" trialEnergy="0.1500" searchE="false"/> <custom l="0" type="apw+lo" trialEnergy="-0.20" searchE="true"/> <custom l="1" type="apw+lo" trialEnergy="0.15" searchE="true"/> </basis> </sp> </spdb>
This specification of the basis involves APWs for all
The best of the two worlds
In practice, both APW+lo and LAPW significantly improve upon APW. While, in practice, APW+lo is more accurate than LAPW, the former methods introduces additional basis functions. Therefore, APW+lo is not practical for replacing APW for high-
4. Semi-core states
The linearization procedure described above is useful for improving the description of valence states. However, local orbitals can be used also for describing semicore states.
Consider the lithium atom. It has the shell structure 1s22s1, which contains just one valence electron. The 1s state can be attributed to the core, but it is neither sufficiently localized within Li muffin tins nor well separated from valence states in terms of energy. Therefore, it makes sense to consider the 1s state on the same footing as valence states. This idea is implemented in the example below that is the standard species file for Li.
<spdb> <sp chemicalSymbol="Li" name="lithium" z="-3.00000" mass="12652.66897"> <muffinTin rmin="0.100000E-04" radius="1.7000" rinf="29.9495" radialmeshPoints="250"/> <atomicState n="1" l="0" kappa="1" occ="2.00000" core="false"/> <atomicState n="2" l="0" kappa="1" occ="1.00000" core="false"/> <basis> <default type="lapw" trialEnergy="0.1500" searchE="false"/> <custom l="0" type="apw+lo" trialEnergy="0.1500" searchE="true"/> <lo l="0"> <wf matchingOrder="0" trialEnergy="0.1500" searchE="true"/> <wf matchingOrder="1" trialEnergy="0.1500" searchE="true"/> <wf matchingOrder="0" trialEnergy="-1.8784" searchE="true"/> </lo> </basis> </sp> </spdb>
The attribute core = "false" explicitly defines that 1s and 2s are supposed to be treated as valence states. Another important ingredient is the element that describes a local orbital.
<lo l="0"> <wf matchingOrder="0" trialEnergy="0.1500" searchE="true"/> <wf matchingOrder="1" trialEnergy="0.1500" searchE="true"/> <wf matchingOrder="0" trialEnergy="-1.8784" searchE="true"/> </lo>
This element consists of three subelements that describe to three
"primitive" functions that satisfy the radial Schrödinger equation. The
first subelement contains the attributes matchingOrder = "0" and trialEnergy = "0.1500". They mean that the first "primitive" function corresponds to the zeroth-order energy-derivative and the energy parameter is
The local orbital is defined as a linear combination of these primitive functions:
(5)where
0 Comments