Mantid
|
This class is mostly a convenience class. More...
#include <CenteringGroup.h>
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 ¢eringSymbol) | |
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< SymmetryOperation > | getSymmetryOperations () 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::V3D > | operator* (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< SymmetryOperation > | m_allOperations |
CoordinateSystem | m_axisSystem |
std::set< SymmetryOperation > | m_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... | |
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.
Definition at line 40 of file CenteringGroup.h.
Enumerator | |
---|---|
P | |
I | |
A | |
B | |
C | |
F | |
Robv | |
Rrev |
Definition at line 42 of file CenteringGroup.h.
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().
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.
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.
|
protected |
Definition at line 50 of file CenteringGroup.h.
Referenced by CenteringGroup(), and getSymbol().
|
protected |
Definition at line 49 of file CenteringGroup.h.
Referenced by CenteringGroup(), and getType().