Trait Projectable

Source
pub trait Projectable<G, I>: Orbit<G, I>{
    type Projected<'p>
       where Self: 'p;

    // Required method
    fn project_onto(&self, row: &G::RowSymbol) -> Self::Projected<'_>;

    // Provided method
    fn generate_orbit_algebra_terms<'a>(
        &'a self,
        row: &G::RowSymbol,
    ) -> impl Iterator<Item = Result<(&'a Character, I), Error>>
       where I: 'a,
             G: 'a { ... }
}
Expand description

Trait to facilitate the application of a group projection operator.

Required Associated Types§

Source

type Projected<'p> where Self: 'p

The type of the result of the projection.

Required Methods§

Source

fn project_onto(&self, row: &G::RowSymbol) -> Self::Projected<'_>

Projects the orbit onto a symmetry subspace.

Provided Methods§

Source

fn generate_orbit_algebra_terms<'a>( &'a self, row: &G::RowSymbol, ) -> impl Iterator<Item = Result<(&'a Character, I), Error>>
where I: 'a, G: 'a,

Returns an iterator containing each term in the projection summation and the accompanying character value (without complex conjugation).

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'a, G> Projectable<G, Density<'a, f64>> for DensitySymmetryOrbit<'a, G, f64>

Source§

type Projected<'p> = Result<Density<'p, f64>, Error> where Self: 'p

Source§

impl<'a, G> Projectable<G, Density<'a, Complex<f64>>> for DensitySymmetryOrbit<'a, G, Complex<f64>>

Source§

type Projected<'p> = Result<Density<'p, Complex<f64>>, Error> where Self: 'p

Source§

impl<'a, G> Projectable<G, SlaterDeterminant<'a, f64, SpinConstraint>> for SlaterDeterminantSymmetryOrbit<'a, G, f64, SpinConstraint>

Source§

impl<'a, G> Projectable<G, SlaterDeterminant<'a, Complex<f64>, SpinConstraint>> for SlaterDeterminantSymmetryOrbit<'a, G, Complex<f64>, SpinConstraint>

Source§

impl<'a, G> Projectable<G, SlaterDeterminant<'a, Complex<f64>, SpinOrbitCoupled>> for SlaterDeterminantSymmetryOrbit<'a, G, Complex<f64>, SpinOrbitCoupled>

Source§

impl<'a, G> Projectable<G, MolecularOrbital<'a, f64, SpinConstraint>> for MolecularOrbitalSymmetryOrbit<'a, G, f64, SpinConstraint>

Source§

impl<'a, G> Projectable<G, MolecularOrbital<'a, Complex<f64>, SpinConstraint>> for MolecularOrbitalSymmetryOrbit<'a, G, Complex<f64>, SpinConstraint>

Source§

impl<'a, G> Projectable<G, MolecularOrbital<'a, Complex<f64>, SpinOrbitCoupled>> for MolecularOrbitalSymmetryOrbit<'a, G, Complex<f64>, SpinOrbitCoupled>