Function project_slater_determinant

Source
pub fn project_slater_determinant(
    py: Python<'_>,
    inp_sym: PathBuf,
    pydet: PySlaterDeterminant,
    projection_targets: Vec<PyProjectionTarget>,
    density_matrix_calculation_thresholds: Option<(f64, f64)>,
    pybaos: Vec<PyBasisAngularOrder>,
    use_magnetic_group: Option<MagneticSymmetryAnalysisKind>,
    use_double_group: bool,
    symmetry_transformation_kind: SymmetryTransformationKind,
    write_character_table: bool,
    infinite_order_to_finite: Option<u32>,
    sao: Option<PyArray2RC<'_>>,
    sao_h: Option<PyArray2RC<'_>>,
) -> PyResult<(Vec<String>, Py<PyAny>)>
Expand description

Python-exposed function to perform symmetry projection for real and complex Slater determinants.

§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 symmetry projection.
  • pydet - A Slater determinant whose coefficient matrices are of type float64 or complex128.
  • projection_targets - A sequence of subspace labels for projection. Each label is either a symbolic string or a numerical index for the subspace in the character table of the prevailing group.
  • 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 will be computed.
  • pybaos - Python-exposed structures containing basis angular order information, one for each explicit component per coefficient 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.
  • symmetry_transformation_kind - An enumerated type indicating the type of symmetry transformations to be performed on the origin electron density to generate the orbit.
  • 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.
  • sao - The optional atomic-orbital overlap matrix whose elements are of type float64 or complex128. If this is not present, no squared norms of the resulting multi-determinants will be computed.
  • 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.

§Returns

The result will be returned as a tuple where the first item is a list of the labels of the subspaces used for projection, and the second item is an object containing the Slater determinant basis and the linear combination coefficients as a two-dimensional array with each column corresponding to one projected state.