Trait qsym2::symmetry::symmetry_group::SymmetryGroupProperties
source · pub trait SymmetryGroupProperties: ClassProperties<GroupElement = SymmetryOperation, ClassSymbol = SymmetryClassSymbol<SymmetryOperation>> + CharacterProperties + Sized {
// Required methods
fn from_molecular_symmetry(
sym: &Symmetry,
infinite_order_to_finite: Option<u32>,
) -> Result<Self, Error>;
fn to_double_group(&self) -> Result<Self, Error>;
// Provided methods
fn canonicalise_character_table(&mut self) { ... }
fn deduce_finite_group_name(&mut self) -> String { ... }
fn all_unitary(&self) -> bool { ... }
fn is_double_group(&self) -> bool { ... }
fn group_type(&self) -> GroupType { ... }
fn class_symbols_from_symmetry(
&mut self,
) -> Vec<SymmetryClassSymbol<SymmetryOperation>> { ... }
}
Expand description
Trait defining behaviours of symmetry groups.
Required Methods§
sourcefn from_molecular_symmetry(
sym: &Symmetry,
infinite_order_to_finite: Option<u32>,
) -> Result<Self, Error>
fn from_molecular_symmetry( sym: &Symmetry, infinite_order_to_finite: Option<u32>, ) -> Result<Self, Error>
Constructs a group from molecular symmetry elements (not operations).
§Arguments
sym
- A molecular symmetry structure containing the symmetry elements.infinite_order_to_finite
- Interpret infinite-order generating elements as finite-order generating elements to create a finite subgroup of an otherwise infinite group.
§Returns
A finite group of symmetry operations.
sourcefn to_double_group(&self) -> Result<Self, Error>
fn to_double_group(&self) -> Result<Self, Error>
Converts a symmetry group to its corresponding double group.
§Returns
The corresponding double group.
Provided Methods§
sourcefn canonicalise_character_table(&mut self)
fn canonicalise_character_table(&mut self)
Reorders and relabels the rows and columns of the constructed character table using symmetry-specific rules and conventions.
The default implementation of this method is to do nothing. Specific trait implementations can override this to provide specific ways to canonicalise character tables.
sourcefn deduce_finite_group_name(&mut self) -> String
fn deduce_finite_group_name(&mut self) -> String
Deduces the group name in Schönflies notation of a finite subgroup of an infinite molecular symmetry group.
sourcefn all_unitary(&self) -> bool
fn all_unitary(&self) -> bool
Returns true
if all elements in this group are unitary.
sourcefn is_double_group(&self) -> bool
fn is_double_group(&self) -> bool
Returns true
if all elements in this group are in $\mathsf{SU}'(2)
$ or false
if they
are all in $\mathsf{O}(3)
$.
§Panics
Panics if mixed $\mathsf{SU}'(2)
$ and $\mathsf{O}(3)
$ elements are found.
sourcefn group_type(&self) -> GroupType
fn group_type(&self) -> GroupType
Determines whether this group is an ordinary (double) group, a magnetic grey (double) group, or a magnetic black-and-white (double) group.
sourcefn class_symbols_from_symmetry(
&mut self,
) -> Vec<SymmetryClassSymbol<SymmetryOperation>>
fn class_symbols_from_symmetry( &mut self, ) -> Vec<SymmetryClassSymbol<SymmetryOperation>>
Returns the conjugacy class symbols in this group based on molecular symmetry.