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§

source

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.

source

fn to_double_group(&self) -> Result<Self, Error>

Converts a symmetry group to its corresponding double group.

§Returns

The corresponding double group.

Provided Methods§

source

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.

source

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.

source

fn all_unitary(&self) -> bool

Returns true if all elements in this group are unitary.

source

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.

source

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.

source

fn class_symbols_from_symmetry( &mut self, ) -> Vec<SymmetryClassSymbol<SymmetryOperation>>

Returns the conjugacy class symbols in this group based on molecular symmetry.

Object Safety§

This trait is not object safe.

Implementors§