Molassembler  1.0.0
Molecule graph and conformer library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Scine::Molassembler::Shapes::Elements Namespace Reference

Namespace for classes and data of point group symmetry elements. More...

Data Structures

struct  SymmetryElement
 Base class for symmetry elements. More...
 
struct  Identity
 E symmetry element. More...
 
struct  Inversion
 i symmetry element More...
 
struct  Rotation
 Abstraction of Cn and Sn symmetry elements. More...
 
struct  Reflection
 Reflection by a plane symmetry element. More...
 
struct  ElementGrouping
 

Typedefs

using ElementsList = std::vector< std::unique_ptr< SymmetryElement >>
 Heterogeneous list of symmetry elements.
 
using NpGroupingsMapType = std::unordered_map< unsigned, std::vector< ElementGrouping >, std::hash< unsigned >, std::equal_to<>, Eigen::aligned_allocator< std::pair< const unsigned, std::vector< ElementGrouping >>> >
 

Functions

Rotation operator* (const Rotation &rot, const Reflection &reflection)
 
Rotation operator* (const Reflection &reflection, const Rotation &rot)
 
PURITY_WEAK ElementsList symmetryElements (PointGroup group) noexcept
 Lists all symmetry elements for a point group. More...
 
PURITY_STRONG unsigned order (PointGroup group)
 Returns the number of symmetry elements in a point group.
 
NpGroupingsMapType npGroupings (const ElementsList &elements)
 Generate all groupings of symmetry elements for those points in space for which some symmetry elements have the same effect. More...
 

Detailed Description

Namespace for classes and data of point group symmetry elements.

Typedef Documentation

using Scine::Molassembler::Shapes::Elements::NpGroupingsMapType = typedef std::unordered_map< unsigned, std::vector<ElementGrouping>, std::hash<unsigned>, std::equal_to<>, Eigen::aligned_allocator<std::pair<const unsigned, std::vector<ElementGrouping>>> >

Map from number of points to element groups, including the probe point E.g. there is a grouping of symmetry elements for four points in Td (G = 24) So the resulting map can be indexed with four to get the symmetry element groups.

Function Documentation

NpGroupingsMapType Scine::Molassembler::Shapes::Elements::npGroupings ( const ElementsList &  elements)

Generate all groupings of symmetry elements for those points in space for which some symmetry elements have the same effect.

Parameters
elementsSymmetry elements list
Returns
Groups of symmetry elements
PURITY_WEAK ElementsList Scine::Molassembler::Shapes::Elements::symmetryElements ( PointGroup  group)
noexcept

Lists all symmetry elements for a point group.

Parameters
groupPoint group for which to enumerate symmetry elements
Note
Yields an empty list of elements for invalid group values.
Warning
Cinfv and Dinfh return the elements for C8v and D8h, respectively.
Ih and I are not implemented yet. Will assert in Debug and yield a single-element list in Release.
Returns
a list of symmetry elements