Function qsym2::target::orbital::orbital_analysis::generate_det_mo_orbits
source · pub fn generate_det_mo_orbits<'a, G, T>(
det: &'a SlaterDeterminant<'a, T>,
mos: &'a [Vec<MolecularOrbital<'a, T>>],
group: &'a G,
metric: &Array2<T>,
metric_h: Option<&Array2<T>>,
integrality_threshold: <T as ComplexFloat>::Real,
linear_independence_threshold: <T as ComplexFloat>::Real,
symmetry_transformation_kind: SymmetryTransformationKind,
eigenvalue_comparison_mode: EigenvalueComparisonMode,
use_cayley_table: bool,
) -> Result<(SlaterDeterminantSymmetryOrbit<'a, G, T>, Vec<Vec<MolecularOrbitalSymmetryOrbit<'a, G, T>>>), Error>where
G: SymmetryGroupProperties + Clone,
G::CharTab: SubspaceDecomposable<T>,
T: Lapack + ComplexFloat<Real = <T as Scalar>::Real> + Debug + Mul<<T as ComplexFloat>::Real, Output = T>,
<T as ComplexFloat>::Real: Debug + Zero + From<u16> + ToPrimitive + RelativeEq<<T as ComplexFloat>::Real> + AbsDiffEq<Epsilon = <T as Scalar>::Real>,
SlaterDeterminant<'a, T>: SymmetryTransformable,
MolecularOrbital<'a, T>: SymmetryTransformable,
Expand description
Given an origin determinant, generates the determinant orbit and all molecular-orbital orbits
in tandem while populating their matrices at the same time.
The evaluation of the matrix for the determinant orbit passes through
intermediate values that can be used to populate the
matrices of the
molecular-orbital orbits, so it saves time significantly to construct all orbits together.
§Arguments
det
- An origin determinant.mos
- The molecular orbitals ofdet
.group
- An orbit-generating symmetry group.metric
- The metric of the basis in which the coefficients ofdet
andmos
are written.integrality_threshold
- The threshold of integrality check of multiplicity coefficients in each orbit.linear_independence_threshold
- The threshold of linear independence for each orbit.symmetry_transformation_kind
- The kind of symmetry transformation to be applied to theeigenvalue_comparison_mode
- The mode of comparing the overlap eigenvalues to the specifiedlinear_independence_threshold
.use_cayley_table
- A boolean indicating if the Cayley table of the group, if available, should be used to speed up the computation of the orbit overlap matrix.
§Returns
A tuple consisting of:
- the determinant orbit, and
- a vector of vectors of molecular-orbital orbits, where each element of the outer vector is for one spin space, and each element of an inner vector is for one molecular orbital.