occ
Loading...
Searching...
No Matches
occ::crystal::SubgroupTransform Struct Reference

A change of setting from a space group to one of its subgroups. More...

#include <subgroup.h>

Public Member Functions

 SubgroupTransform ()=default
 
 SubgroupTransform (const MaximalSubgroup &)
 
 SubgroupTransform (const SubgroupPath &)
 

Public Attributes

int subgroup {0}
 Space group number of the subgroup.
 
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.
 

Detailed Description

A change of setting from a space group to one of its subgroups.

Both MaximalSubgroup and SubgroupPath convert to one of these; it is what to_subgroup actually needs.

Constructor & Destructor Documentation

◆ SubgroupTransform() [1/3]

occ::crystal::SubgroupTransform::SubgroupTransform ( )
default

◆ SubgroupTransform() [2/3]

occ::crystal::SubgroupTransform::SubgroupTransform ( const MaximalSubgroup )

◆ SubgroupTransform() [3/3]

occ::crystal::SubgroupTransform::SubgroupTransform ( const SubgroupPath )

Member Data Documentation

◆ basis_transform

Mat3 occ::crystal::SubgroupTransform::basis_transform {Mat3::Identity()}

Basis change; columns are the new basis vectors in terms of the old.

◆ origin_shift

Vec3 occ::crystal::SubgroupTransform::origin_shift {Vec3::Zero()}

Origin shift, in fractional coordinates of the parent cell.

◆ subgroup

int occ::crystal::SubgroupTransform::subgroup {0}

Space group number of the subgroup.

Zero, i.e. invalid, by default: a default-constructed transform is not a no-op, and silently defaulting to 1 would mean "descend to P1" – which to_subgroup would dutifully do, destroying the symmetry. It fails loudly instead.


The documentation for this struct was generated from the following file: