Trait qsym2::analysis::ProjectionDecomposition
source · pub trait ProjectionDecomposition<G, I, T, D>: RepAnalysis<G, I, T, D>where
T: ComplexFloat + Lapack + Debug,
<T as ComplexFloat>::Real: ToPrimitive,
G: GroupProperties + ClassProperties + CharacterProperties + Sync + Send,
<G as CharacterProperties>::RowSymbol: Sync + Send,
G::GroupElement: Display,
G::CharTab: SubspaceDecomposable<T>,
D: Dimension,
I: Overlap<T, D> + Clone,
Self: Sync + Send,
Self::OrbitIter: Iterator<Item = Result<I, Error>>,
for<'a> Complex<f64>: Mul<&'a T, Output = Complex<f64>>,{
// Provided methods
fn calc_projection_compositions(
&self,
) -> Result<Vec<(<<G as CharacterProperties>::CharTab as CharacterTable>::RowSymbol, Complex<f64>)>, Error> { ... }
fn projections_to_string(
&self,
projections: &[(<<G as CharacterProperties>::CharTab as CharacterTable>::RowSymbol, Complex<f64>)],
integrality_threshold: <T as ComplexFloat>::Real,
) -> String { ... }
}
Expand description
Trait for decomposing the origin of an orbit into the irreducible components of the generating group using the projection operator.
Provided Methods§
sourcefn calc_projection_compositions(
&self,
) -> Result<Vec<(<<G as CharacterProperties>::CharTab as CharacterTable>::RowSymbol, Complex<f64>)>, Error>
fn calc_projection_compositions( &self, ) -> Result<Vec<(<<G as CharacterProperties>::CharTab as CharacterTable>::RowSymbol, Complex<f64>)>, Error>
Calculates the irreducible compositions of the origin $\mathbf{v}
$ of the orbit using the
projection operator:
p_{\Gamma} =
\frac{\dim \Gamma}{\lvert \mathcal{G} \rvert}
\sum_{i=1}^{\lvert \mathcal{G} \rvert}
\chi_{\Gamma}^{*}(\hat{g}_i)
\braket{ \mathbf{v} | \hat{g}_i \mathbf{v} }
At the moment, this only works for unitary irreducible representations because of the
presence of the characters $\chi_{\Gamma}(\hat{g}_i)
$ which can only be tabulated for
unitary operations.
§Returns
A vector of tuples, each of which contains the irreducible row label and the corresponding projection value.
sourcefn projections_to_string(
&self,
projections: &[(<<G as CharacterProperties>::CharTab as CharacterTable>::RowSymbol, Complex<f64>)],
integrality_threshold: <T as ComplexFloat>::Real,
) -> String
fn projections_to_string( &self, projections: &[(<<G as CharacterProperties>::CharTab as CharacterTable>::RowSymbol, Complex<f64>)], integrality_threshold: <T as ComplexFloat>::Real, ) -> String
Converts a slice of tuples of irreducible row symbols and projection values to a nicely formatted table.
§Arguments
projections
- A slice of tuples of irreducible row symbols and projection values.integrality_threshold
- Threshold for ascertaining the integrality of projection values.
§Returns
A string of a nicely formatted table.
Object Safety§
This trait is not object safe.