pub struct Operator {
pub terms: Vec<Term>,
pub origin: Vec3,
}Expand description
A one-electron operator: a sum of Terms, polynomial in r and p,
with a documented origin for its r factors (the multipole / gauge origin).
Adding a new integral type is constructing one of these — see the
constructors (Operator::dipole, Operator::quadrupole,
Operator::momentum, Operator::angular_momentum, …). The engines are
untouched.
Fields§
§terms: Vec<Term>The terms summed to form the operator.
origin: Vec3Origin for the r factors (multipole / gauge origin), in bohr.
Implementations§
Source§impl Operator
impl Operator
Sourcepub fn new(terms: Vec<Term>, origin: Vec3) -> Self
pub fn new(terms: Vec<Term>, origin: Vec3) -> Self
Construct an operator from its terms and r-origin.
Sourcepub fn dipole(axis: usize, origin: Vec3) -> Self
pub fn dipole(axis: usize, origin: Vec3) -> Self
The dipole component r_axis about origin — ⟨a|(r−O)_axis|b⟩.
Real-symmetric.
Sourcepub fn quadrupole(i: usize, j: usize, origin: Vec3) -> Self
pub fn quadrupole(i: usize, j: usize, origin: Vec3) -> Self
The second-moment / quadrupole component r_i r_j about origin —
⟨a|(r−O)_i (r−O)_j|b⟩. Real-symmetric.
Sourcepub fn kinetic() -> Self
pub fn kinetic() -> Self
The kinetic-energy operator −½∇² = ½ p·p. Real-symmetric; reproduces
crate::os::kinetic_into.
Sourcepub fn momentum(axis: usize) -> Self
pub fn momentum(axis: usize) -> Self
The momentum component p_axis = −i∂_axis. Imaginary/antisymmetric.
Sourcepub fn angular_momentum(axis: usize, origin: Vec3) -> Self
pub fn angular_momentum(axis: usize, origin: Vec3) -> Self
The orbital-angular-momentum component (r × p)_axis about origin,
e.g. L_x = (r−O)_y p_z − (r−O)_z p_y. Imaginary/antisymmetric (the
i is carried explicitly).