pub fn symmetrise_molecule(
py: Python<'_>,
inp_xyz: Option<PathBuf>,
inp_mol: Option<PyMolecule>,
out_target_sym: Option<PathBuf>,
loose_moi_threshold: f64,
loose_distance_threshold: f64,
target_moi_threshold: f64,
target_distance_threshold: f64,
use_magnetic_group: bool,
reorientate_molecule: bool,
max_iterations: usize,
consistent_target_symmetry_iterations: usize,
verbose: u8,
infinite_order_to_finite: Option<u32>,
) -> PyResult<PyMolecule>Expand description
Python-exposed function to perform molecule symmetrisation by bootstrapping and log the result
via the qsym2-output logger at the INFO level.
See crate::drivers::molecule_symmetrisation_bootstrap for more information.
§Arguments
inp_xyz- An optional string providing the path to an XYZ file containing the molecule to be symmetrised. Only one ofinp_xyzorinp_molcan be specified.inp_mol- An optionalPyMoleculestructure containing the molecule to be symmetrised. Only one ofinp_xyzorinp_molcan be specified.out_target_sym- An optional path for aQSym2FileType::Symfile to be saved that contains the symmetry-group detection results of the symmetrised molecule at the target thresholds.loose_moi_threshold- The loose MoI threshold.loose_distance_threshold- The loose distance threshold.target_moi_threshold- The target (tight) MoI threshold.target_distance_threshold- The target (tight) distance threshold.use_magnetic_group- A boolean indicating if the magnetic group (i.e. the group including time-reversed operations) is to be used for the symmetrisation.reorientate_molecule- A boolean indicating if the molecule is also reoriented to align its principal axes with the Cartesian axes.max_iterations- The maximum number of iterations for the symmetrisation process.consistent_target_symmetry_iterations- The number of consecutive iterations during which the symmetry group at the target level of threshold must be consistently found for convergence to be reached, if this group cannot become identical to the symmetry group at the loose level of threshold.verbose- The print-out level.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 the symmetrisation.
§Returns
The symmetrised molecule.
§Errors
Errors if any intermediate step in the symmetrisation procedure fails.