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.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.