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 $\mathbf{S}
$ matrices at the same time.
The evaluation of the $\mathbf{S}
$ matrix for the determinant orbit passes through
intermediate values that can be used to populate the $\mathbf{S}
$ 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.