Numerical Settings¶
Purpose: Computational parameters: meshes, basis sets, convergence, and discretization
In scope:
- K-point meshes and line paths for band structures
- Real-space meshes and grids
- Basis set specifications: plane-wave, APW, atom-centered
- Convergence thresholds and maximum iterations
- Smearing functions: Fermi-Dirac, Gaussian, Methfessel-Paxton
- Force calculation settings
Relationship map¶
Hold "Alt" / "Option" to enable pan & zoom
classDiagram
class APWPlaneWaveBasisSet
class AtomCenteredFunction
class BasisSetComponent
class ForceCalculations
class KLinePath
class KMesh
class KSpace
class Mesh
class NumericalSettings
class PlaneWaveBasisSet
class SelfConsistency
class Smearing
PlaneWaveBasisSet <|-- APWPlaneWaveBasisSet
NumericalSettings <|-- ForceCalculations
Mesh <|-- KMesh
NumericalSettings <|-- KSpace
BasisSetComponent <|-- PlaneWaveBasisSet
KMesh <|-- PlaneWaveBasisSet
NumericalSettings <|-- SelfConsistency
NumericalSettings <|-- Smearing
KSpace --> KLinePath : k_line_path
KSpace --> KMesh : k_mesh
Legend
Parent <|-- Child inheritance (Child extends Parent)Owner --> SubSection containment/subsectionKey sections¶
| Section | Description | MetaInfo |
|---|---|---|
NumericalSettings |
A base section used to define the numerical settings used in a simulation. | Open in MetaInfo browser |
Mesh |
A base section used to specify the settings of a sampling mesh. | Open in MetaInfo browser |
KMesh |
A base section used to specify the settings of a sampling mesh in reciprocal space. | Open in MetaInfo browser |
KLinePath |
A base section used to define the settings of a k-line path within a multidimensional mesh. | Open in MetaInfo browser |
KSpace |
A base section used to specify the settings of the k-space. | Open in MetaInfo browser |
Smearing |
Section specifying the smearing of the occupation numbers to either simulate temperature effects or improve SCF convergence. | Open in MetaInfo browser |
SelfConsistency |
A base section used to define the convergence settings of self-consistent field (SCF) calculation. | Open in MetaInfo browser |
ForceCalculations |
Section containing the parameters describing how a ForceField model is evaluated during a simulation. | Open in MetaInfo browser |
BasisSetComponent |
A type section denoting a basis set component of a simulation. | Open in MetaInfo browser |
PlaneWaveBasisSet |
Basis set over a reciprocal mesh, where each point \(k_n\) represents a planar-wave basis function $rac{1}{\sqrt{\omega}} e^{i k_n r}$. | Open in MetaInfo browser |
APWPlaneWaveBasisSet |
A PlaneWaveBasisSet specialized to the APW use case. |
Open in MetaInfo browser |
AtomCenteredFunction |
Specifies a single contracted basis function in an atom-centered basis set. | Open in MetaInfo browser |
Quantities by section¶
NumericalSettings¶
| Quantity | Type | Description |
|---|---|---|
name |
m_str(str) | Name of the numerical settings section. This is typically used to easy identification of the NumericalSettings section. Possible values: "KMesh", "FrequencyMesh", "TimeMesh", "SelfConsistency", "BasisSet". |
Mesh¶
| Quantity | Type | Description |
|---|---|---|
spacing |
Enum (shape: ['dimensionality']) | Identifier for the spacing of the Mesh.Identifier for the spacing of the Mesh. Defaults to 'Equidistant' if not defined. It can take the values:| Name | Description | | --------- | -------------------------------- | | 'Equidistant' | Equidistant grid (also known as 'Newton-Cotes') || 'Logarithmic' | log distance grid || 'Tan' | Non-uniform tan mesh for grids. More dense at low abs values of the points, while less dense for higher values | |
quadrature |
Enum | Quadrature rule used for integration of the Mesh.Quadrature rule used for integration of the Mesh. This quantity is relevant for 1D meshes:| Name | Description | | --------- | -------------------------------- | | 'Gauss-Legendre' | Quadrature rule for integration using Legendre polynomials || 'Gauss-Laguerre' | Quadrature rule for integration using Laguerre polynomials || 'Clenshaw-Curtis' | Quadrature rule for integration using Chebyshev polynomials using discrete cosine transformations || 'Gauss-Hermite' | Quadrature rule for integration using Hermite polynomials | |
n_points |
m_int32(int32) | Number of points in the mesh. |
dimensionality |
m_int32(int32) | Dimensionality of the mesh: 1, 2, or 3. Defaults to 3. |
grid |
m_int32(int32) (shape: ['dimensionality']) | Amount of mesh point sampling along each axis. See type for the axes definition. |
points |
m_complex128(complex128) (shape: ['n_points', 'dimensionality']) | List of all the points in the mesh. |
multiplicities |
m_float64(float64) (shape: ['n_points']) | The amount of times the same point reappears. A value larger than 1, typically indicates a symmetry operation that was applied to the Mesh. This quantity is equivalent to weights: multiplicities = n_points * weights |
weights |
m_float64(float64) (shape: ['n_points']) | Weight of each point. A value smaller than 1, typically indicates a symmetry operation that was applied to the mesh. This quantity is equivalent to multiplicities: weights = multiplicities / n_points |
KMesh¶
| Quantity | Type | Description |
|---|---|---|
label |
Enum | Label used to identify the meaning of the reciprocal grid.Label used to identify the meaning of the reciprocal grid.The actual meaning of k vs g vs q is context-dependent, though typically:- g is used for the primitive vectors (typically within the Brillouin zone).- k for a generic reciprocal vector.- q for any momentum change imparted by a scattering event. |
center |
Enum | Identifier for the center of the Mesh:Identifier for the center of the Mesh:| Name | Description | | --------- | -------------------------------- | | 'Gamma-centered' | Regular mesh is centered around Gamma. No offset. || 'Monkhorst-Pack' | Regular mesh with an offset of half the reciprocal lattice vector. || 'Gamma-offcenter' | Regular mesh with an offset that is neither 'Gamma-centered', nor 'Monkhorst-Pack'. | |
offset |
m_float64(float64) (shape: [3]) | Offset vector shifting the mesh with respect to a Gamma-centered case (where it is defined as [0, 0, 0]). |
all_points |
m_float64(float64) (shape: ['*', 3]) | Full list of the mesh points without any symmetry operations in units of the reciprocal_lattice_vectors. In the presence of symmetry operations, this quantity is a larger list than points (as it will contain all the points in the Brillouin zone). |
high_symmetry_points |
JSON | Dictionary containing the high-symmetry point labels and their values in units of Dictionary containing the high-symmetry point labels and their values in units of |
k_line_density |
m_float64(float64) | Amount of sampled k-points per unit reciprocal length along each axis. Contains the least precise density out of all axes. Should only be compared between calculations of similar dimensionality. |
KLinePath¶
| Quantity | Type | Description |
|---|---|---|
high_symmetry_path_names |
m_str(str) (shape: ['*']) | List of the high-symmetry path names followed in the k-line path. This quantity is directly coupled with high_symmetry_path_value. E.g., in a cubic lattice: high_symmetry_path_names = ['Gamma', 'X', 'Y', 'Gamma']. |
high_symmetry_path_values |
m_float64(float64) (shape: ['*', 3]) | List of the high-symmetry path values in units of the reciprocal_lattice_vectors in the k-line path. This quantity is directly coupled with high_symmetry_path_names. E.g., in a cubic lattice: high_symmetry_path_value = [[0, 0, 0], [0.5, 0, 0], [0, 0.5, 0], [0, 0, 0]]. |
n_line_points |
m_int32(int32) | Number of points in the k-line path. |
points |
m_float64(float64) (shape: ['n_line_points', 3]) | List of all the points in the k-line path in units of the reciprocal_lattice_vectors. |
KSpace¶
| Quantity | Type | Description |
|---|---|---|
reciprocal_lattice_vectors |
m_float64(float64) (shape: [3, 3]) | Reciprocal lattice vectors of the simulated cell, in Cartesian coordinates and including the \(2 pi\) pre-factor. The first index runs over each lattice vector. The second index runs over the \(x, y, z\) Cartesian coordinates. |
Smearing¶
| Quantity | Type | Description |
|---|---|---|
name |
Enum | Smearing routine employed. |
SelfConsistency¶
| Quantity | Type | Description |
|---|---|---|
scf_minimization_algorithm |
m_str(str) | Specifies the algorithm used for self consistency minimization. |
n_max_iterations |
m_int32(int32) | Specifies the maximum number of allowed self-consistent iterations. The simulation is_scf_converged if the number of iterations is not larger or equal than this quantity. |
threshold_change |
m_float64(float64) | Specifies the threshold for the change between two subsequent self-consistent iterations on a given output property. The simulation is_scf_converged if this total change is below this threshold. |
threshold_change_unit |
m_str(str) | Unit using the pint UnitRegistry() notation for the threshold_change. |
ForceCalculations¶
| Quantity | Type | Description |
|---|---|---|
vdw_cutoff |
m_float64(float64) | Cutoff for calculating VDW forces. |
coulomb_type |
Enum | Method used for calculating long-ranged Coulomb forces.Method used for calculating long-ranged Coulomb forces.Allowed values are: | Method Name | Description | | ---------------------- | ----------------------------------------- | | "" | No thermostat || "Cutoff" | Simple cutoff scheme. || "Ewald" | Standard Ewald summation as described in any solid-state physics text. || "Multi-Level Summation" | D. Hardy, J.E. Stone, and K. Schulten,Parallel. Comput. 35, 164| | "Particle-Mesh-Ewald" | T. Darden, D. York, and L. Pedersen,J. Chem. Phys. 98, 10089 (1993) | | "Particle-Particle Particle-Mesh" | See e.g. Hockney and Eastwood, Computer Simulation Using Particles,Adam Hilger, NY (1989). | | "Reaction-Field" | J.A. Barker and R.O. Watts,Mol. Phys. 26, 789 (1973)| |
coulomb_cutoff |
m_float64(float64) | Cutoff for calculating short-ranged Coulomb forces. |
neighbor_update_frequency |
m_int32(int) | Number of timesteps between updating the neighbor list. |
neighbor_update_cutoff |
m_float64(float64) | The distance cutoff for determining the neighbor list. |
BasisSetComponent¶
| Quantity | Type | Description |
|---|---|---|
name |
m_str(str) | Name of the basis set component. |
species_scope |
Reference to the section AtomsState specifying the localization of the basis set. |
|
hamiltonian_scope |
Reference to the section BaseModelMethod containing the information of the Hamiltonian term to which the basis set applies. |
PlaneWaveBasisSet¶
| Quantity | Type | Description |
|---|---|---|
cutoff_energy |
m_float64(float64) | Cutoff energy for the plane-wave basis set. The simulation uses plane waves with energies below this cutoff. |
cutoff_radius |
m_float64(float64) | Cutoff radius for the plane-wave basis set. Is the less frequently used dual to cutoff_energy. |
APWPlaneWaveBasisSet¶
| Quantity | Type | Description |
|---|---|---|
cutoff_fractional |
m_float64(float64) | The spherical cutoff parameter for the interstitial plane waves in the APW family. This cutoff has no units, referring to the product of the smallest muffin-tin radius and the length of the cutoff reciprocal vector (\(r_{MT} * \|K_{cut}\|\)). |
AtomCenteredFunction¶
| Quantity | Type | Description |
|---|---|---|
angular_type |
Enum | Angular basis used when expanding this shell into AOs. |
function_type |
Enum | Angular-momentum label (s, p, d, f, etc.). |
angular_momentum |
m_int32(int32) | Angular momentum quantum number ℓ. |
r_power |
m_int32(int32) | Radial power n_s for this shell's analytic form (typically 0 for GTOs). |
shell_normalization |
m_float64(float64) | Unitless normalization factor applied to each contracted atomic orbital (or shell) to satisfy the chosen normalization convention. It defines how normalized primitives are scaled when forming the final AO. |
n_primitive |
m_int32(int32) | Number of primitives in this shell. A primitive is a single uncontracted radial basis function such as one Gaussian or Slater-type orbital before contraction into a full atomic orbital. |
exponents |
m_float32(float32) (shape: ['n_primitive']) | Primitive exponents. |
contraction_coefficients |
m_float32(float32) (shape: ['n_primitive']) | Contraction coefficients for the primitives in this single-ℓ shell. |
primitive_factor |
m_float64(float64) (shape: ['n_primitive']) | Extra per-primitive multiplier (dimensionless). |
point_charge |
m_float32(float32) | Optional embedded point charge. |