Trait qsym2::analysis::Overlap

source ·
pub trait Overlap<T, D>
where T: ComplexFloat + Debug + Lapack, D: Dimension,
{ // Required methods fn complex_symmetric(&self) -> bool; fn overlap( &self, other: &Self, metric: Option<&Array<T, D>>, metric_h: Option<&Array<T, D>>, ) -> Result<T, Error>; fn overlap_definition(&self) -> String; }
Expand description

Trait for computing the inner product $\langle \hat{\iota} \mathbf{v}_i, \mathbf{v}_j \rangle$ between two linear-space quantities $\mathbf{v}_i$ and $\mathbf{v}_j$. The involutory operator $\hat{\iota}$ determines whether the inner product is a sesquilinear form or a bilinear form.

Required Methods§

source

fn complex_symmetric(&self) -> bool

If true, the inner product is bilinear and $\hat{\iota} = \hat{\kappa}$. If false, the inner product is sesquilinear and $\hat{\iota} = \mathrm{id}$.

source

fn overlap( &self, other: &Self, metric: Option<&Array<T, D>>, metric_h: Option<&Array<T, D>>, ) -> Result<T, Error>

Returns the overlap between self and other, with respect to a metric metric (and possibly its complex-symmetric version metric_h) of the underlying basis in which self and other are expressed.

source

fn overlap_definition(&self) -> String

Returns a string describing the mathematical definition of the overlap (i.e. the inner product) between two quantities of this type.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'a, T> Overlap<T, Dim<[usize; 2]>> for SlaterDeterminant<'a, T>
where T: Lapack + ComplexFloat<Real = <T as Scalar>::Real> + Debug + Mul<<T as ComplexFloat>::Real, Output = T>, <T as ComplexFloat>::Real: Debug + RelativeEq<<T as ComplexFloat>::Real> + AbsDiffEq<Epsilon = <T as Scalar>::Real>,

source§

impl<'a, T> Overlap<T, Dim<[usize; 2]>> for MolecularOrbital<'a, T>
where T: Lapack + ComplexFloat<Real = <T as Scalar>::Real> + Debug + Mul<<T as ComplexFloat>::Real, Output = T>, <T as ComplexFloat>::Real: Debug + RelativeEq<<T as ComplexFloat>::Real> + AbsDiffEq<Epsilon = <T as Scalar>::Real>,

source§

impl<'a, T> Overlap<T, Dim<[usize; 2]>> for VibrationalCoordinate<'a, T>
where T: Lapack + ComplexFloat<Real = <T as Scalar>::Real> + Debug + Mul<<T as ComplexFloat>::Real, Output = T>, <T as ComplexFloat>::Real: Debug + RelativeEq<<T as ComplexFloat>::Real> + AbsDiffEq<Epsilon = <T as Scalar>::Real>,

source§

impl<'a, T> Overlap<T, Dim<[usize; 4]>> for Density<'a, T>
where T: Lapack + ComplexFloat<Real = <T as Scalar>::Real> + Debug + Mul<<T as ComplexFloat>::Real, Output = T>, <T as ComplexFloat>::Real: Debug + RelativeEq<<T as ComplexFloat>::Real> + AbsDiffEq<Epsilon = <T as Scalar>::Real>,

source§

impl<T> Overlap<T, Dim<[usize; 2]>> for AxialVector3<T>
where T: Lapack + ComplexFloat<Real = <T as Scalar>::Real> + Debug + Mul<<T as ComplexFloat>::Real, Output = T>, <T as ComplexFloat>::Real: Debug + RelativeEq<<T as ComplexFloat>::Real> + AbsDiffEq<Epsilon = <T as Scalar>::Real>,

source§

impl<T, F> Overlap<T, Dim<[usize; 1]>> for RealSpaceFunction<T, F>
where T: ComplexFloat + Lapack + Send + Sync, F: Clone + Sync + Send + Fn(&Point3<f64>) -> T,