|
occ
|
A maximal subgroup of a space group. More...
#include <subgroup.h>
Public Member Functions | |
| bool | is_translationengleiche () const |
| bool | is_klassengleiche () const |
| std::string | to_string () const |
| The 3x4 matrix [P | p] as an ITA-style string, e.g. "a-b,a+b,c". | |
Public Attributes | |
| int | parent {0} |
| Space group number of the parent. | |
| int | subgroup {0} |
| Space group number of the subgroup. | |
| int | index {1} |
| The index [G:H]. | |
| SubgroupType | type {SubgroupType::Translationengleiche} |
| Mat3 | basis_transform {Mat3::Identity()} |
| Basis change; columns are the new basis vectors in terms of the old. | |
| Vec3 | origin_shift {Vec3::Zero()} |
| Origin shift, in fractional coordinates of the parent cell. | |
A maximal subgroup of a space group.
The relation is described by the subgroup's space group number, the index [G:H], and the transformation to the subgroup's standard setting: a basis change \(P\) (columns are the new basis vectors in terms of the old) and an origin shift \(p\), following the International Tables convention
\[ (a', b', c') = (a, b, c) P, \qquad x' = P^{-1}(x - p) \]
\[ \det P = \text{index} \times \frac{\text{centring of } H}{\text{centring of } G} \]
For example P2 (2 operations) has a klassengleiche subgroup C2 (4 operations) at index 2, with \(\det P = 4\); and a centred parent may transform to a primitive cell, giving \(\det P < 1\). The invariant that always holds, counting symmetry operations per unit volume, is
\[ n_G \cdot \det P = n_H \cdot \text{index} \]
so the naive \(|H| \cdot \text{index} = |G|\) is not a valid check.
|
inline |
|
inline |
| std::string occ::crystal::MaximalSubgroup::to_string | ( | ) | const |
The 3x4 matrix [P | p] as an ITA-style string, e.g. "a-b,a+b,c".
| Mat3 occ::crystal::MaximalSubgroup::basis_transform {Mat3::Identity()} |
Basis change; columns are the new basis vectors in terms of the old.
| int occ::crystal::MaximalSubgroup::index {1} |
The index [G:H].
| Vec3 occ::crystal::MaximalSubgroup::origin_shift {Vec3::Zero()} |
Origin shift, in fractional coordinates of the parent cell.
| int occ::crystal::MaximalSubgroup::parent {0} |
Space group number of the parent.
| int occ::crystal::MaximalSubgroup::subgroup {0} |
Space group number of the subgroup.
| SubgroupType occ::crystal::MaximalSubgroup::type {SubgroupType::Translationengleiche} |