|
| 1 | +# Basis Sets |
| 2 | + |
| 3 | +The following lays down the schema annotation for several families of basis sets. |
| 4 | +We start off genercially before running over specific examples. |
| 5 | +The aim is not to introduce the full theory behind every basis set, but just enough to understand its main concepts and how they relate. |
| 6 | + |
| 7 | +## General Structure |
| 8 | + |
| 9 | +Basis sets are used by codes to represent various kinds of electronic structures, e.g. wavefunctions, densities, exchange densities, etc. |
| 10 | +Each electronic structure is therefore described by an individual `BasisSetContainer` in the schema. |
| 11 | + |
| 12 | +Basis sets may be partitioned by various regions, spanning either physical / reciprocal space, energy (i.e. core vs. valence), or potential / Hamiltonian. |
| 13 | +We will cover the partitions per example below. |
| 14 | +Each `BasisSetContainer` is then constructed out of several `basis_set_components` matching a single region. |
| 15 | +Sometimes, a region is defined in terms of another schema section, e.g. an atom center (`species_scope`) or Hamiltonian terms (`hamiltonian_scope`). |
| 16 | + |
| 17 | +Note that typically, different kinds of regions also have different mathematical formulations. |
| 18 | +Each formulation has its own dedicated section, to facilitate their reuse. |
| 19 | +These are all derived from the abstract section `BasisSetComponent`, so that `basis_set_components: list[BasisSetComponent]`. |
| 20 | + |
| 21 | +Generically, `BasisSetComponent` will allude to the the formula at large and just focus on capturing the _subtype_, as well as relevant _parameters_. |
| 22 | +The most relevant ones are those that most commonly listed in the Method section of an article. |
| 23 | +These typically also influence the _precision_ most. |
| 24 | +Extra, code-specific subtypes and parameters can be added by their respective parsers. |
| 25 | + |
| 26 | +This then coalesces into the following diagram: |
| 27 | + |
| 28 | +``` |
| 29 | +ModelMethod |
| 30 | +└── NumericalSettings[0] |
| 31 | +└── ... |
| 32 | +└── NumericalSettings[n] = BasisSetContainer |
| 33 | + └── BasisSetComponent[1] |
| 34 | + └── ... |
| 35 | + └── BasisSetComponent[n] |
| 36 | + └──> AtomsState |
| 37 | + └──> BaseModelMethod |
| 38 | +``` |
| 39 | + |
| 40 | +## Plane-waves |
| 41 | + |
| 42 | +Plane-wave basis sets start from the description of a free electron and use Fourier to construct the representations of bound electrons. |
| 43 | +In reciprocal space, the basis set can thus be thought of as vectors in a Cartesian* grid enclosed within a sphere. |
| 44 | + |
| 45 | +The main parameter is the spherical radius, i.e. the _cutoff_, which corresponds to the highest frequency representable Fourier frequency. |
| 46 | +By convention, the radius is typically expressed in terms of the kinetic energy for the matching free-electron wave. |
| 47 | +`PlaneWaveBasisSet` allows storing either `cutoff_radius` and `cutoff_energy`. |
| 48 | +It can even derive the former from the latter via normalization. |
| 49 | + |
| 50 | +### Pseudopotentials |
| 51 | + |
| 52 | +Under construction... |
| 53 | + |
| 54 | +## LAPW |
| 55 | + |
| 56 | +The family of linearized augmented plane-waves is one of the best examples of region partitioning: |
| 57 | + |
| 58 | +- first it partitions the physical space into regions surrounding the atomic nuclei, i.e. the _muffin-tin spheres_, and the rest, i.e. the _interstitial region_. |
| 59 | +- it then further partitions the muffin tins by energy, i.e. core versus valence. |
| 60 | +Note that unlike with pseudpotentials, the electrons are not abstracted away here. |
| 61 | +They are instead explicitly accounted for and relaxed, just via a different representation. |
| 62 | +Hence, LAPW is a _full-electron approach_. |
| 63 | + |
| 64 | +The interstitial region, covering mostly loose bonding, is described by plane-waves (`APWPlaneWaveBasisSet`). [1] |
| 65 | +The valence electrons in the muffin tin (`MuffinTinRegion`), meanwhile, are represented by the spherically symmetric Schrödigner equation. [1] |
| 66 | +They follow the additional constraint of having to match the plane-wave description. |
| 67 | +In that sense, where the plane-wave description becomes too expensive, it is "augmented" by the muffin-tin description. |
| 68 | +This results in a lower plane-wave cutoff. |
| 69 | + |
| 70 | +The spherically symmetric Schrödigner equation decomposes into an angular and radial part. |
| 71 | +In traditional APW (not supported in NOMAD), the angular and radial part are coupled in a non-linear fashion via the radial energy (at the boundary). |
| 72 | +All versions of LAPW simplify the coupling by parametrizing this radial energy. [1] |
| 73 | + |
| 74 | +The representation vector is then developed in terms of the angular basis vectors, i.e. $l$-channels, each with their corresponding radial energy parameter. |
| 75 | +This approach is -confusingly- also called _APW_. |
| 76 | +It is typically not found standalone, though. |
| 77 | +Instead, the linearization introduces a secondary representation via the first-order derivative of the basis vector (function). |
| 78 | +Both vectors are typically developed together. |
| 79 | +This technique is called linearized APW (LAPW). [1] |
| 80 | + |
| 81 | +Other formulas have been experimented with too. |
| 82 | +For example, the use of even higher-order derivatives, i.e. superlinearized APW (SLAPW). [2, 3] |
| 83 | +All of these types are captured by `APWOrbital`, where `type` distinguishes between APW, LAPW, or SLAPW. |
| 84 | +The `name` quantity |
| 85 | + |
| 86 | +Another option is to stay with APW (or LAPW) and add standalone vectors targeting specific atomic states, e.g. high-energy core states, valence states, etc. |
| 87 | +These are called _local orbitals_ (lo) and bear other constraints. |
| 88 | +Some authors distinguish different vector sums with different kinds of local orbitals, e.g. lo, LO, high-dimensional LO (HDLO). [2, 4] |
| 89 | +Since there is no community-wide consensus on the use of these abbreviations, we only utilize `lo` via `APWLocalOrbital`. |
| 90 | + |
| 91 | +In summary, a generic LAPW basis set can thus be summarized as follows: |
| 92 | + |
| 93 | +``` |
| 94 | +LAPW+lo |
| 95 | +├── 1 x plane-wave basis set |
| 96 | +└── n x muffin-tin regions |
| 97 | + └── l_max x l-channels |
| 98 | + ├── orbitals |
| 99 | + └── local orbitals ? |
| 100 | +``` |
| 101 | + |
| 102 | +or in terms of the schema: |
| 103 | + |
| 104 | +``` |
| 105 | +BasisSetContainer(name: LAPW+lo) |
| 106 | +├── APWPlaneWaveBasisSet |
| 107 | +├── MuffinTinRegion(atoms_state: atom A) |
| 108 | +├── ... |
| 109 | +└── MuffinTinRegion(atoms_state: atom N) |
| 110 | + ├── channel 0 |
| 111 | + ├── ... |
| 112 | + └── channel l_max |
| 113 | + ├── APWOrbital(type: lapw) |
| 114 | + └── APWLocalOrbital ? |
| 115 | +``` |
| 116 | + |
| 117 | +[1]: D. J. Singh and L. Nordström, \"INTRODUCTION TO THE LAPW METHOD,\" in Planewaves, pseudopotentials, and the LAPW method, 2nd ed. New York, NY: Springer, 2006. |
| 118 | + |
| 119 | +[2]: A. Gulans, S. Kontur, et al., exciting: a full-potential all-electron package implementing density-functional theory and many-body perturbation theory, _J. Phys.: Condens. Matter_ **26** (363202), 2014. DOI: 10.1088/0953-8984/26/36/363202 |
| 120 | + |
| 121 | +[3]: J. VandeVondele, M. Krack, et al., WIEN2k: An APW+lo program for calculating the properties of solids, _J. Chem. Phys._ **152**(074101), 2020. DOI: 10.1063/1.5143061 |
| 122 | + |
| 123 | +[4]: D. Singh and H. Krakauer, H-point phonon in molybdenum: Superlinearized augmented-plane-wave calculations, _Phys. Rev. B_ **43**(1441), 1991. DOI: 10.1103/PhysRevB.43.1441 |
| 124 | + |
| 125 | +## Gaussian-Planewaves (GPW) |
| 126 | + |
| 127 | +The CP2K code introduces an algorithm called QuickStep that partitions by Hamiltonian, describing |
| 128 | + |
| 129 | +- the kinetic and Coulombic electron-nuclei interaction terms of a Gaussian-type orbital (GTO). |
| 130 | +- the electronic Hartree energy via plane-waves. |
| 131 | + |
| 132 | +This GPW choice is to increase performance. [1] |
| 133 | +In the schema, we would write: |
| 134 | + |
| 135 | +``` |
| 136 | +BasisSetContainer(name: GPW) |
| 137 | +├── PlaneWaveBasisSet(hamiltonian_scope: [`/path/to/kinetic_term/hamiltonian`, `/path/to/e-n_term/hamiltonian`]) |
| 138 | +└── AtomCenteredBasisSet(name: GTO, hamiltonian_scope: [`/path/to/hartree_term/hamiltonian`]) |
| 139 | +``` |
| 140 | + |
| 141 | +For further details on the schema, see the CP2K parser documentation. |
| 142 | + |
| 143 | +[1]: J. VandeVondele, M. Krack, et al., Quickstep: Fast and accurate density functional calculations using a mixed Gaussian and plane waves approach, |
| 144 | +_Comp. Phys. Commun._ **167**(2), 103-128, 2005. DOI: 10.1016/j.cpc.2004.12.014. |
0 commit comments