pub struct CuestShellSpec {
pub l: u64,
pub pure: bool,
pub exponents: Vec<f64>,
pub coefficients: Vec<f64>,
}Expand description
Specification of one contracted Gaussian shell.
exponents and coefficients are the primitive lists cuEST uses
verbatim: coefficients multiply raw (unnormalized) primitives, so
coefficients taken from a standard basis file (e.g. .gbs), which are
relative to normalized primitives, must be converted with
CuestShellSpec::normalized (cuEST’s documented normalization). Both
lists are in atomic units.
Fields§
§l: u64Angular momentum quantum number (s = 0, p = 1, d = 2, …).
pure: boolWhether the shell uses pure (spherical) functions instead of Cartesian ones. All shells of a basis must agree.
exponents: Vec<f64>Primitive Gaussian exponents (all positive).
coefficients: Vec<f64>Contraction coefficients, one per exponent, used verbatim.
Implementations§
Source§impl CuestShellSpec
impl CuestShellSpec
Sourcepub fn new(
l: u64,
pure: bool,
exponents: Vec<f64>,
coefficients: Vec<f64>,
) -> Result<Self, CuestError>
pub fn new( l: u64, pure: bool, exponents: Vec<f64>, coefficients: Vec<f64>, ) -> Result<Self, CuestError>
Build a shell spec from primitive lists.
Returns CuestError::Rust if the lists are empty or have different
lengths.
Sourcepub fn normalized(&self, normalization: f64) -> Result<Self, CuestError>
pub fn normalized(&self, normalization: f64) -> Result<Self, CuestError>
Convert the coefficients to cuEST’s convention, normalized to
normalization (usually 1.0).
Input coefficients are interpreted as relative to normalized
primitives (the convention of standard basis files); the output folds
in the primitive normalization that cuEST’s verbatim convention
requires (see normalize_coefficients). Calling this twice is
therefore wrong — the result is already in cuEST’s convention.
Sourcepub fn num_primitive(&self) -> u64
pub fn num_primitive(&self) -> u64
Number of primitives in the shell.