Skip to content

qsym2

Functions

project_slater_determinant

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

Parameters:

  • inp_sym

    (str) –

    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

    (PySlaterDeterminant) –

    A Slater determinant whose coefficient matrices are of type float64 or complex128.

  • projection_targets

    (Sequence[str | int]) –

    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

    (tuple[float, float] | None) –

    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

    (Sequence[PyBasisAngularOrder]) –

    Python-exposed structures containing basis angular order information, one for each explicit component per coefficient matrix.

  • use_magnetic_group

    (MagneticSymmetryAnalysisKind | None) –

    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

    (bool) –

    A boolean indicating if the double group of the prevailing symmetry group is to be used for representation analysis instead.

  • symmetry_transformation_kind

    (SymmetryTransformationKind) –

    An enumerated type indicating the type of symmetry transformations to be performed on the origin electron density to generate the orbit.

  • write_character_table

    (bool, default: True ) –

    A boolean indicating if the character table of the prevailing symmetry group is to be printed out.

  • infinite_order_to_finite

    (int | None, default: None ) –

    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

    (Py2DArray_f64 | Py2DArray_c128 | None, default: None ) –

    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

    (Py2DArray_f64 | Py2DArray_c128 | None, default: None ) –

    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:

  • tuple[list[str], PyMultiDeterminants]

    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.