Class PrimitiveTransform¶
Defined in File primitive.hpp
Class Documentation¶
-
class
brille::PrimitiveTransform¶ A class to hold transformation matricies and their inverse, with the matrix stored in an object determined by a provided BravaisLetter type.
For each centred real-space-filling lattice there is a transformation matrix P which converts its basis vectors into those of an equivalent primitive space-filling lattice via, (aₚ,bₚ,cₚ) = (aₛ,bₛ,cₛ)P
The components of a real-space vector expressed in units of the conventional cell vectors transforms to the primitive cell expression by xₚ = P⁻¹xₛ this can be shown by considering Aₛ = (aₛ,bₛ,cₛ) and Aₚ = (aₚ,bₚ,cₚ) then Aₚ = Aₛ P and noting that the vector expressed in either lattice remains unchanged Aₚ xₚ = Aₛ xₛ (Aₛ P) xₚ = Aₛ xₛ P xₚ = xₛ xₚ = P⁻¹ xₛ
If we express the reciprocal lattice vectors as the columns of a matrix B, then Aₛ Bₛᵀ ≡ 2π 𝟙 from which, we can derive the transformation of the reciprocal lattice vectors Aₚ Bₚᵀ = Aₛ Bₛᵀ Aₛ P Bₚᵀ = Aₛ Bₛᵀ Bₚᵀ = P⁻¹ Bₛᵀ Bₚ = Bₛ (P⁻¹)ᵀ and a reciprocal lattice vector qₛ can be expressed in the primitive reciprocal lattice since Bₚ qₚ = Bₛ qₛ Bₛ (P⁻¹)ᵀ qₚ = Bₛ qₛ (Pᵀ)⁻¹ qₚ = qₛ qₚ = Pᵀ qₛ where the commutability of the inverse and transpose, (Pᵀ)⁻¹ ≡ (P⁻¹)ᵀ, has been utilized.
This class holds P and P⁻¹ for a given centering type.
Public Functions
-
PrimitiveTransform(const Spacegroup &s)¶
-
PrimitiveTransform(const int hall)¶
-
std::array<double, 9>
get_P(void) const¶
-
std::array<int, 9>
get_invP(void) const¶
-
std::array<double, 9>
get_Pt(void) const¶
-
std::array<int, 9>
get_invPt(void) const¶
-
void
print()¶
-
bool
does_anything() const¶ A check if the Matrices should do anything, that is not if the centering is Primitive.
-
bool
does_nothing() const¶ A check if the Matrices shouldn’t do anything, that is if the centering is Primitive.
-
std::string
string_repr() const¶
-