occ
|
This class represents a space group. More...
#include <spacegroup.h>
Public Member Functions | |
SpaceGroup () | |
Constructs a space group with only translational symmetry. | |
SpaceGroup (int num) | |
Constructs a space group with the given space group number. | |
SpaceGroup (const std::string &symbol) | |
Constructs a space group with the given space symbol. | |
SpaceGroup (const std::vector< std::string > &symops) | |
Constructs a space group with the list of symmetry operations in their string form, if the list of symops is not a known space group, it will still construct the object and may be used (even though it is not necessarily valid) | |
SpaceGroup (const std::vector< SymmetryOperation > &symops) | |
Constructs a space group with the list of symmetry operations. | |
int | number () const |
Returns the space group number of this space group. | |
const std::string & | symbol () const |
Returns the Hermann-Mauguin (international tables) symbol for this object. | |
const std::string & | short_name () const |
Returns the Hermann-Mauguin (international tables) symbol for this object, shortened e.g P 1 2 1 -> P2. | |
const std::vector< SymmetryOperation > & | symmetry_operations () const |
Returns the list of symmetry operations for this space group. | |
bool | has_H_R_choice () const |
Determine whether this space group has the choice between hexagonal (H) and rhombohedral (R) settings. | |
std::pair< IVec, Mat3N > | apply_all_symmetry_operations (const Mat3N &) const |
Apply all symmetry operations to a provided set of fractional coordinates, with the identity symop always first. | |
std::pair< IVec, Mat3N > | apply_rotations (const Mat3N &) const |
auto | reciprocal_asu () const |
This class represents a space group.
A space group describes the symmetries within a crystal structure of a crystal structure. Provides methods for accessing and manipulating space group data.
occ::crystal::SpaceGroup::SpaceGroup | ( | ) |
Constructs a space group with only translational symmetry.
occ::crystal::SpaceGroup::SpaceGroup | ( | int | num | ) |
Constructs a space group with the given space group number.
num | The space group number. |
std::invalid_argument | if the given number is not a valid space group number. |
occ::crystal::SpaceGroup::SpaceGroup | ( | const std::string & | symbol | ) |
Constructs a space group with the given space symbol.
symbol | The space group symbol. |
std::invalid_argument | if the given space group can't be found |
occ::crystal::SpaceGroup::SpaceGroup | ( | const std::vector< std::string > & | symops | ) |
Constructs a space group with the list of symmetry operations in their string form, if the list of symops is not a known space group, it will still construct the object and may be used (even though it is not necessarily valid)
symops | The space group symmetry operations |
occ::crystal::SpaceGroup::SpaceGroup | ( | const std::vector< SymmetryOperation > & | symops | ) |
Constructs a space group with the list of symmetry operations.
if the list of symops is not a known space group, it will still construct the object and may be used (even though it is not necessarily valid)
symops | The space group symmetry operations |
std::pair< IVec, Mat3N > occ::crystal::SpaceGroup::apply_all_symmetry_operations | ( | const Mat3N & | ) | const |
Apply all symmetry operations to a provided set of fractional coordinates, with the identity symop always first.
IVec
, Mat3N
corresponding to the integer representation SymmetryOperation::to_int
of the symop applied to each point, and the points after that symop application. If N points were provided and this SpaceGroup has 8 symmetry operations, then the resulting IVec
will have dimension (N*8,) and the Mat3N
of coordinates will have dimension (3, N*8). std::pair< IVec, Mat3N > occ::crystal::SpaceGroup::apply_rotations | ( | const Mat3N & | ) | const |
bool occ::crystal::SpaceGroup::has_H_R_choice | ( | ) | const |
Determine whether this space group has the choice between hexagonal (H) and rhombohedral (R) settings.
int occ::crystal::SpaceGroup::number | ( | ) | const |
Returns the space group number of this space group.
|
inline |
const std::string & occ::crystal::SpaceGroup::short_name | ( | ) | const |
Returns the Hermann-Mauguin (international tables) symbol for this object, shortened e.g P 1 2 1 -> P2.
const std::string & occ::crystal::SpaceGroup::symbol | ( | ) | const |
Returns the Hermann-Mauguin (international tables) symbol for this object.
const std::vector< SymmetryOperation > & occ::crystal::SpaceGroup::symmetry_operations | ( | ) | const |
Returns the list of symmetry operations for this space group.