Class representing a 3D symmetry operation.
More...
#include <symmetryoperation.h>
Class representing a 3D symmetry operation.
A symmetry operation describes the combined rotation and translation operations, as a member of a SpaceGroup
.
◆ SymmetryOperation() [1/3]
occ::crystal::SymmetryOperation::SymmetryOperation |
( |
const Mat4 & |
seitz | ) |
|
Constructor from an aribtrary 4x4 matrix.
- Parameters
-
seitz | Mat4 matrix encompassing the rotation and translation components of this symmetry operation. |
- Note
- The matrix is not checked to ensure it's a sensible symmetry operation, or even affine.
◆ SymmetryOperation() [2/3]
occ::crystal::SymmetryOperation::SymmetryOperation |
( |
const std::string & |
symop | ) |
|
Constructor from string representation.
- Parameters
-
symop | std::string describing the symmetry operation, e.g. "x,y,z" for the identity symop |
- Note
- The string is not checked to ensure it's a sensible symmetry operation, or even affine, it is algorithmically constructed from the string.
◆ SymmetryOperation() [3/3]
occ::crystal::SymmetryOperation::SymmetryOperation |
( |
int |
symop | ) |
|
Constructor from an integer representation.
- Parameters
-
symop | int describing the symmetry operation, e.g. 16484 |
Since there are only 3 possible entries in the rotation matrix \((-1, 0, 1)\) and 8 in the translation component \((0, \frac{1}{6}, \frac{1}{4}, \frac{1}{3},
\frac{1}{2}, \frac{2}{3}, \frac{3}{4}, \frac{5}{6})\), all of which are divisible by 12, the symop can be serialized as an integer
◆ apply()
Mat3N occ::crystal::SymmetryOperation::apply |
( |
const Mat3N & |
frac | ) |
const |
Apply the transformation represented by this symop to a set of coordinates.
- Parameters
-
frac | Mat3N containing fractional coordinates. |
- Returns
- Mat3N containing the transformed coordinates.
- Note
- Coords are assumed to be in fractional.
◆ cartesian_rotation()
Mat3 occ::crystal::SymmetryOperation::cartesian_rotation |
( |
const UnitCell & |
cell | ) |
const |
Convert the rotation matrix to Cartesian coordinates.
- Parameters
-
cell | The UnitCell object representing the crystal structure |
- Returns
- Mat3 The rotation matrix in Cartesian coordinates
◆ has_translation()
bool occ::crystal::SymmetryOperation::has_translation |
( |
| ) |
const |
|
inline |
◆ inverted()
Returns an inverted copy of this symmetry operation e.g.
(x,y,z) -> (-x,-y,-z)
- Returns
SymmetryOperation
equivalent to this under inversion
◆ is_identity()
bool occ::crystal::SymmetryOperation::is_identity |
( |
| ) |
const |
|
inline |
Is this the identity symop?
- Returns
- true if this is the identity symop, false otherwise
◆ operator()()
auto occ::crystal::SymmetryOperation::operator() |
( |
const Mat3N & |
frac | ) |
const |
|
inline |
◆ operator*()
Compose this symmetry operation with another.
- Returns
- SymmetryOperation representing the matrix product of this on the left of another symop i.e. this * other
◆ operator<()
bool occ::crystal::SymmetryOperation::operator< |
( |
const SymmetryOperation & |
other | ) |
const |
|
inline |
Ordering is based on integer representation.
◆ operator<=()
bool occ::crystal::SymmetryOperation::operator<= |
( |
const SymmetryOperation & |
other | ) |
const |
|
inline |
Ordering is based on integer representation.
◆ operator==()
bool occ::crystal::SymmetryOperation::operator== |
( |
const SymmetryOperation & |
other | ) |
const |
|
inline |
Check if two symops are identical.
◆ operator>()
bool occ::crystal::SymmetryOperation::operator> |
( |
const SymmetryOperation & |
other | ) |
const |
|
inline |
Ordering is based on integer representation.
◆ operator>=()
bool occ::crystal::SymmetryOperation::operator>= |
( |
const SymmetryOperation & |
other | ) |
const |
|
inline |
Ordering is based on integer representation.
◆ rotate_adp()
Vec6 occ::crystal::SymmetryOperation::rotate_adp |
( |
Eigen::Ref< const Vec6 > |
adp | ) |
const |
Rotate ADP parameters in the order (u11, u22, u33, u12, u13, u23)
- Parameters
-
- Returns
- Vec6 the rotated ADP
◆ rotation()
Mat3 occ::crystal::SymmetryOperation::rotation |
( |
| ) |
const |
|
inline |
The 3x3 rotation component of the matrix representation of this symop.
- Returns
- Mat3 containing describing the rotation.
◆ seitz()
const auto & occ::crystal::SymmetryOperation::seitz |
( |
| ) |
const |
|
inline |
The 4x4 Seitz matrix representation of this symop.
- Returns
- const reference to a Mat4 containing describing this symop.
◆ to_int()
int occ::crystal::SymmetryOperation::to_int |
( |
| ) |
const |
The integer representation of this symop.
- Returns
- integer representing the symop e.g. 16484 for the identity
◆ to_string()
String representation of this symop.
- Returns
- std::string representing the symop e.g. "+x,+y,+z" for the identity
◆ translated()
Returns an inverted copy of this symmetry operation e.g.
(x,y,z) -> (x+1/2,y+1/3,z-1/3) etc.
- Returns
SymmetryOperation
equivalent to this after the translation
- Note
- Translation is in the range [0, 1] i.e. 4/3 will be expressed as 1/3
◆ translation()
Vec3 occ::crystal::SymmetryOperation::translation |
( |
| ) |
const |
|
inline |
The translation component of the matrix representation of this symop.
- Returns
- Vec3 containing describing the translation.
The documentation for this class was generated from the following file: