Trait OrbitMatrix

Source
pub trait OrbitMatrix<'a, T, SC>{
    // Required method
    fn calc_matrix_element(
        &self,
        det_w: &SlaterDeterminant<'_, T, SC>,
        det_x: &SlaterDeterminant<'_, T, SC>,
        sao: &ArrayView2<'_, T>,
        thresh_offdiag: <T as ComplexFloat>::Real,
        thresh_zeroov: <T as ComplexFloat>::Real,
    ) -> Result<T, Error>;

    // Provided methods
    fn norm_preserving_scalar_map<'b, G>(
        &self,
        i: usize,
        orbit_basis: &'b OrbitBasis<'b, G, SlaterDeterminant<'a, T, SC>>,
    ) -> Result<fn(T) -> T, Error>
       where G: SymmetryGroupProperties + Clone,
             'a: 'b { ... }
    fn calc_orbit_matrix<'g, G>(
        &self,
        orbit_basis: &'g OrbitBasis<'g, G, SlaterDeterminant<'a, T, SC>>,
        use_cayley_table: bool,
        sao: &ArrayView2<'_, T>,
        thresh_offdiag: <T as ComplexFloat>::Real,
        thresh_zeroov: <T as ComplexFloat>::Real,
    ) -> Result<Array2<T>, Error>
       where G: SymmetryGroupProperties + Clone,
             T: Sync + Send,
             <T as ComplexFloat>::Real: Sync,
             SlaterDeterminant<'a, T, SC>: Sync,
             Self: Sync,
             'a: 'g { ... }
}

Required Methods§

Source

fn calc_matrix_element( &self, det_w: &SlaterDeterminant<'_, T, SC>, det_x: &SlaterDeterminant<'_, T, SC>, sao: &ArrayView2<'_, T>, thresh_offdiag: <T as ComplexFloat>::Real, thresh_zeroov: <T as ComplexFloat>::Real, ) -> Result<T, Error>

Provided Methods§

Source

fn norm_preserving_scalar_map<'b, G>( &self, i: usize, orbit_basis: &'b OrbitBasis<'b, G, SlaterDeterminant<'a, T, SC>>, ) -> Result<fn(T) -> T, Error>
where G: SymmetryGroupProperties + Clone, 'a: 'b,

Source

fn calc_orbit_matrix<'g, G>( &self, orbit_basis: &'g OrbitBasis<'g, G, SlaterDeterminant<'a, T, SC>>, use_cayley_table: bool, sao: &ArrayView2<'_, T>, thresh_offdiag: <T as ComplexFloat>::Real, thresh_zeroov: <T as ComplexFloat>::Real, ) -> Result<Array2<T>, Error>
where G: SymmetryGroupProperties + Clone, T: Sync + Send, <T as ComplexFloat>::Real: Sync, SlaterDeterminant<'a, T, SC>: Sync, Self: Sync, 'a: 'g,

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, T, SC> OrbitMatrix<'a, T, SC> for &HamiltonianAO<'a, T, SC>

Source§

impl<'a, T, SC> OrbitMatrix<'a, T, SC> for &OverlapAO<'a, T, SC>
where T: ComplexFloat + Lapack, SC: StructureConstraint + Clone + Display, for<'b> SlaterDeterminant<'b, T, SC>: Overlap<T, Ix2>, SlaterDeterminant<'a, T, SC>: SymmetryTransformable,

Source§

impl<'a, T, SC> OrbitMatrix<'a, T, SC> for HamiltonianAO<'a, T, SC>

Source§

impl<'a, T, SC> OrbitMatrix<'a, T, SC> for OverlapAO<'a, T, SC>
where T: ComplexFloat + Lapack, SC: StructureConstraint + Clone + Display, for<'b> SlaterDeterminant<'b, T, SC>: Overlap<T, Ix2>, SlaterDeterminant<'a, T, SC>: SymmetryTransformable,