|
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. | |
| bool | is_standard_setting () const |
| Apply all symmetry operations to a provided set of fractional coordinates, with the identity symop always first. | |
| SpaceGroup | standard_setting () const |
| This space group in its standard (ITA reference) setting. | |
| std::pair< Mat3, Vec3 > | standard_setting_transform () const |
| The change of basis taking this setting to the standard one. | |
| std::pair< IVec, Mat3N > | apply_all_symmetry_operations (const Mat3N &) const |
| std::pair< IVec, Mat3N > | apply_rotations (const Mat3N &) const |
| auto | reciprocal_asu () const |
| std::vector< Eigen::Matrix3i > | laue_rotations () const |
| The distinct rotations acting on reciprocal space, as integer matrices. | |
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 |
| bool occ::crystal::SpaceGroup::has_H_R_choice | ( | ) | const |
Determine whether this space group has the choice between hexagonal (H) and rhombohedral (R) settings.
| bool occ::crystal::SpaceGroup::is_standard_setting | ( | ) | const |
Apply all symmetry operations to a provided set of fractional coordinates, with the identity symop always first.
Whether this space group is in the standard (ITA reference) setting.
Space groups have many settings – P2_1/c, P2_1/a and P2_1/n are all space group 14 – and tabulated data (subgroup relations, Wyckoff positions) is given for the standard one. Structures in the wild often are not.
| std::vector< Eigen::Matrix3i > occ::crystal::SpaceGroup::laue_rotations | ( | ) | const |
The distinct rotations acting on reciprocal space, as integer matrices.
A reflection h maps under (R|t) to (R^T)^-1 h, and the group is closed under inversion, so the orbit of h is its orbit under {R^T}. Friedel's law adds -R^T, giving the Laue group. Translations do not enter: they change the phase of F(h), not its magnitude, so reflections related by these rotations share an intensity.
| 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.
| SpaceGroup occ::crystal::SpaceGroup::standard_setting | ( | ) | const |
This space group in its standard (ITA reference) setting.
The change of basis taking this setting to the standard one.
Returns \((P, p)\) such that \(x_{std} = P^{-1}(x - p)\), i.e. the same convention used for subgroup transformations. The identity when this space group is already in the standard setting.
| 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.