pub fn detect_symmetry_group(
    py: Python<'_>,
    inp_xyz: Option<PathBuf>,
    inp_mol: Option<PyMolecule>,
    out_sym: Option<PathBuf>,
    moi_thresholds: Vec<f64>,
    distance_thresholds: Vec<f64>,
    time_reversal: bool,
    write_symmetry_elements: bool,
    fictitious_magnetic_field: Option<[f64; 3]>,
    fictitious_electric_field: Option<[f64; 3]>,
) -> PyResult<(PySymmetry, Option<PySymmetry>)>
Expand description

Python-exposed function to perform symmetry-group detection and log the result via the qsym2-output logger at the INFO level.

See crate::drivers::symmetry_group_detection for more information.

§Arguments

  • inp_xyz - An optional string providing the path to an XYZ file containing the molecule to be analysed. Only one of inp_xyz or inp_mol can be specified. Python type: Optional[str].
  • inp_mol - An optional PyMolecule structure containing the molecule to be analysed. Only one of inp_xyz or inp_mol can be specified. Python type: PyMolecule.
  • out_sym - An optional name for the QSym2FileType::Sym file to be saved that contains the serialised results of the symmetry-group detection. Python type: Optional[str].
  • moi_thresholds - Thresholds for comparing moments of inertia. Python type: list[float].
  • distance_thresholds - Thresholds for comparing distances. Python type: list[float].
  • time_reversal - A boolean indicating whether elements involving time reversal should also be considered. Python type: bool.
  • write_symmetry_elements - A boolean indicating if detected symmetry elements should be printed in the output. Python type: bool.
  • fictitious_magnetic_field - An optional fictitious uniform external magnetic field. Python type: Optional[tuple[float, float, float]].
  • fictitious_electric_field - An optional fictitious uniform external electric field. Python type: Optional[tuple[float, float, float]].

§Errors

Returns an error if any intermediate step in the symmetry-group detection procedure fails.