Mantid
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Attributes | List of all members
Mantid::Geometry::CenteringGroup Class Reference

This class is mostly a convenience class. More...

#include <CenteringGroup.h>

Inheritance diagram for Mantid::Geometry::CenteringGroup:
Mantid::Geometry::Group

Public Types

enum  CenteringType {
  P , I , A , B ,
  C , F , Robv , Rrev
}
 
- Public Types inherited from Mantid::Geometry::Group
enum  CoordinateSystem { Orthogonal , Hexagonal }
 
enum  GroupAxiom { Closure , Identity , Inversion , Associativity }
 

Public Member Functions

 CenteringGroup (const std::string &centeringSymbol)
 String-based constructor which accepts centering symbols such as P, I or F. More...
 
std::string getSymbol () const
 Returns the centering symbol, does not distinguish between Rhombohedral obverse and reverse. More...
 
CenteringType getType () const
 Returns the centering type of the group (distinguishes between Rhombohedral obverse and reverse). More...
 
- Public Member Functions inherited from Mantid::Geometry::Group
bool containsOperation (const SymmetryOperation &operation) const
 Returns true if the group contains the supplied operation. More...
 
bool fulfillsAxiom (GroupAxiom axiom) const
 Checks whether a certain group axiom is fulfilled, can be used as a more fine-grained alternative to isGroup(). More...
 
CoordinateSystem getCoordinateSystem () const
 Returns the axis system of the group (either orthogonal or hexagonal). More...
 
std::vector< SymmetryOperationgetSymmetryOperations () const
 Returns a vector with all symmetry operations. More...
 
 Group ()
 Default constructor. Creates a group with one symmetry operation (identity). More...
 
 Group (const std::string &symmetryOperationString)
 Uses SymmetryOperationFactory to create a vector of symmetry operations from the string. More...
 
 Group (const std::vector< SymmetryOperation > &symmetryOperations)
 Constructs a group from the symmetry operations in the vector, duplicates are removed. More...
 
bool isGroup () const
 Returns whether the group fulfills the four group axioms. More...
 
bool isInvariant (const Kernel::DblMatrix &tensor, double tolerance=1e-8) const
 Returns true if the tensor is invariant under the group operations. More...
 
bool operator!= (const Group &other) const
 Returns true if groups are different from eachother. More...
 
Group operator* (const Group &other) const
 Multiplication operator of two groups. More...
 
std::vector< Kernel::V3Doperator* (const Kernel::V3D &vector) const
 Returns a unique set of Kernel::V3D resulting from applying all symmetry operations, vectors are wrapped to [0, 1). More...
 
bool operator== (const Group &other) const
 Returns true if both groups contain the same set of symmetry operations. More...
 
size_t order () const
 Returns the order of the group, which is the number of symmetry operations. More...
 
virtual ~Group ()=default
 

Protected Attributes

std::string m_symbol
 
CenteringType m_type
 
- Protected Attributes inherited from Mantid::Geometry::Group
std::vector< SymmetryOperationm_allOperations
 
CoordinateSystem m_axisSystem
 
std::set< SymmetryOperationm_operationSet
 

Additional Inherited Members

- Protected Member Functions inherited from Mantid::Geometry::Group
bool associativityHolds () const
 Checks that associativity holds, i.e. More...
 
bool eachElementHasInverse () const
 Returns true if the inverse of each element is in the group. More...
 
CoordinateSystem getCoordinateSystemFromOperations (const std::vector< SymmetryOperation > &symmetryOperations) const
 Returns the axis system based on the given symmetry operations. More...
 
bool hasIdentity () const
 Returns true if the group has the identity element. More...
 
bool isClosed () const
 Returns true if the group is closed, i.e. all elements of G * G are in G. More...
 
void setSymmetryOperations (const std::vector< SymmetryOperation > &symmetryOperations)
 Assigns symmetry operations, throws std::invalid_argument if vector is empty. More...
 

Detailed Description

This class is mostly a convenience class.

It takes a bravais lattice symbol (P, I, A, B, C, F, R) and forms a group that contains all translations connected to the centering. This is for example used in the space group generation process.

In addition to the inherited interface of Group, CenteringGroup provides methods that provide some meta information, namely the "name" of the centering operation. While CenteringGroup::getSymbol() returns a string, CenteringGroup::getType() returns a value of the enum type CenteringGroup::CenteringType.

Important differences occur in the handling of Rhombohedral centering. CenteringType distinguishes between obverse (Robv) and reverse (Rrev) setting. These can be given explicitly as strings for construction. When only "R" is provided, the obverse setting is assumed.

Author
Michael Wedel, Paul Scherrer Institut - SINQ
Date
07/10/2014

Definition at line 40 of file CenteringGroup.h.

Member Enumeration Documentation

◆ CenteringType

Enumerator
Robv 
Rrev 

Definition at line 42 of file CenteringGroup.h.

Constructor & Destructor Documentation

◆ CenteringGroup()

Mantid::Geometry::CenteringGroup::CenteringGroup ( const std::string &  centeringSymbol)

String-based constructor which accepts centering symbols such as P, I or F.

Definition at line 13 of file CenteringGroup.cpp.

References Mantid::Geometry::Group::getSymmetryOperations(), Mantid::Kernel::SingletonHolder< T >::Instance(), m_symbol, m_type, and Mantid::Geometry::Group::setSymmetryOperations().

Member Function Documentation

◆ getSymbol()

std::string Mantid::Geometry::CenteringGroup::getSymbol ( ) const

Returns the centering symbol, does not distinguish between Rhombohedral obverse and reverse.

Definition at line 26 of file CenteringGroup.cpp.

References m_symbol.

◆ getType()

CenteringGroup::CenteringType Mantid::Geometry::CenteringGroup::getType ( ) const

Returns the centering type of the group (distinguishes between Rhombohedral obverse and reverse).

Definition at line 22 of file CenteringGroup.cpp.

References m_type.

Member Data Documentation

◆ m_symbol

std::string Mantid::Geometry::CenteringGroup::m_symbol
protected

Definition at line 50 of file CenteringGroup.h.

Referenced by CenteringGroup(), and getSymbol().

◆ m_type

CenteringType Mantid::Geometry::CenteringGroup::m_type
protected

Definition at line 49 of file CenteringGroup.h.

Referenced by CenteringGroup(), and getType().


The documentation for this class was generated from the following files: