Skip to main content

rep_analyse_multideterminants_orbit_basis_external_solver

Function rep_analyse_multideterminants_orbit_basis_external_solver 

Source
pub fn rep_analyse_multideterminants_orbit_basis_external_solver(
    py: Python<'_>,
    inp_sym: PathBuf,
    pyorigins: Vec<PySlaterDeterminant>,
    py_noci_solver: Py<PyFunction>,
    pybaos: Vec<PyBasisAngularOrder>,
    density_matrix_calculation_thresholds: Option<(f64, f64)>,
    integrality_threshold: f64,
    linear_independence_threshold: f64,
    use_magnetic_group: Option<MagneticSymmetryAnalysisKind>,
    use_double_group: bool,
    use_cayley_table: bool,
    symmetry_transformation_kind: SymmetryTransformationKind,
    eigenvalue_comparison_mode: EigenvalueComparisonMode,
    sao: PyArray2RC<'_>,
    sao_h: Option<PyArray2RC<'_>>,
    write_overlap_eigenvalues: bool,
    write_character_table: bool,
    infinite_order_to_finite: Option<u32>,
    angular_function_integrality_threshold: f64,
    angular_function_linear_independence_threshold: f64,
    angular_function_max_angular_momentum: u32,
) -> PyResult<Py<PyAny>>
Expand description

Python-exposed function to perform representation symmetry analysis for real and complex multi-determinantal wavefunctions constructed from group-generated orbits and log the result via the qsym2-output logger at the INFO level.

If symmetry_transformation_kind includes spin transformation, the provided multi-determinantal wavefunctions will be augmented to generalised spin constraint automatically.

§Arguments

  • inp_sym - A path to the QSym2FileType::Sym file containing the symmetry-group detection result for the system. This will be used to construct abstract groups and character tables for representation analysis.
  • pyorigins - A list of Python-exposed Slater determinants whose coefficients are of type float64 or complex128. These determinants serve as origins for group-generated orbits which serve as basis states for non-orthogonal configuration interaction to yield multi-determinantal wavefunctions, the symmetry of which will be analysed by this function.
  • py_noci_solver - A Python function callable on a sequence of Slater determinants to perform non-orthogonal configuration interaction (NOCI) and return a list of NOCI energies and a corresponding list of lists of linear combination coefficients, where each inner list is for one multi-determinantal wavefunction resulting from the NOCI calculation. Python type: Callable[[list[PySlaterDeterminantReal | PySlaterDeterminantComplex]], tuple[list[float], list[list[float]]] | tuple[list[complex], list[list[complex]]]].
  • pybaos - Python-exposed structures containing basis angular order information, one for each explicit component per coefficient matrix.
  • density_matrix_calculation_thresholds - An optional pair of thresholds for Löwdin pairing, one for checking zero off-diagonal values, one for checking zero overlaps, when computing multi-determinantal density matrices. If None, no density matrices for the resulting multi-determinants will be computed.
  • integrality_threshold - The threshold for verifying if subspace multiplicities are integral.
  • linear_independence_threshold - The threshold for determining the linear independence subspace via the non-zero eigenvalues of the orbit overlap matrix.
  • use_magnetic_group - An option indicating if the magnetic group is to be used for symmetry analysis, and if so, whether unitary representations or unitary-antiunitary corepresentations should be used.
  • use_double_group - A boolean indicating if the double group of the prevailing symmetry group is to be used for representation analysis instead.
  • use_cayley_table - A boolean indicating if the Cayley table for the group, if available, should be used to speed up the calculation of orbit overlap matrices.
  • symmetry_transformation_kind - An enumerated type indicating the type of symmetry transformations to be performed on the origin determinant to generate the orbit. If this contains spin transformation, the multi-determinant will be augmented to generalised spin constraint automatically.
  • eigenvalue_comparison_mode - An enumerated type indicating the mode of comparison of orbit overlap eigenvalues with the specified linear_independence_threshold.
  • sao - The atomic-orbital overlap matrix whose elements are of type float64 or complex128.
  • sao_h - The optional complex-symmetric atomic-orbital overlap matrix whose elements are of type float64 or complex128. This is required if antiunitary symmetry operations are involved.
  • write_overlap_eigenvalues - A boolean indicating if the eigenvalues of the determinant orbit overlap matrix are to be written to the output.
  • write_character_table - A boolean indicating if the character table of the prevailing symmetry group is to be printed out.
  • infinite_order_to_finite - The finite order with which infinite-order generators are to be interpreted to form a finite subgroup of the prevailing infinite group. This finite subgroup will be used for symmetry analysis.
  • angular_function_integrality_threshold - The threshold for verifying if subspace multiplicities are integral for the symmetry analysis of angular functions.
  • angular_function_linear_independence_threshold - The threshold for determining the linear independence subspace via the non-zero eigenvalues of the orbit overlap matrix for the symmetry analysis of angular functions.
  • angular_function_max_angular_momentum - The maximum angular momentum order to be used in angular function symmetry analysis.