castep_param_io/param/basis_set/
basis_precision.rs

1
2use castep_param_derive::KeywordDisplay;
3use serde::{Deserialize, Serialize};
4
5
6/// This keywords specifies the precision of the basis set by choosing the level of convergence of atomic energies with respect to the plane wave cutoff energy for the pseudopotentials used in the calculation.
7/// Available options are:
8/// - COARSE - convergence of about 1 eV/atom
9/// - MEDIUM - convergence of about 0.3 eV/atom
10/// - FINE - convergence of about 0.1 eV/atom
11/// - PRECISE - 1.2 × FINE cutoff energy
12/// - EXTREME - 1.6 × FINE cutoff energy, convergence of about 0.01 eV/atom
13/// If the `BASIS_PRECISION` is defined, the `CUT_OFF_ENERGY` will be equal to the highest of the cutoff energies associated with the chosen level of accuracy, for the pseudopotentials used in the calculation.
14/// # Note
15/// It is not possible to specify both the `BASIS_PRECISION` and the `CUT_OFF_ENERGY` in a single file.
16#[derive(
17    Debug,
18    Clone,
19    Copy,
20    Default,
21    Serialize,
22    Deserialize,
23    Hash,
24    PartialEq,
25    Eq,
26    PartialOrd,
27    Ord,
28    KeywordDisplay,
29)]
30#[keyword_display(field = "BASIS_PRECISION")]
31pub enum BasisPrecision {
32    Coarse,
33    Medium,
34    #[default]
35    Fine,
36    Precise,
37    Extreme,
38}