Definition of a structure specifying any 3D point groups.
Former-commit-id: b329c8136605e0b8c20bd1c2e562a52829e4c4c8
This commit is contained in:
parent
3a1adeaa25
commit
5aa855af19
|
@ -334,7 +334,7 @@ typedef struct qpms_tmatrix_t {
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|
||||||
// Axial groups
|
// Axial groups
|
||||||
QPMS_PGS_CN, ///< Rotational symmetry \f$ \mathrm{C_{nv}} \f$.
|
QPMS_PGS_CN, ///< Rotational symmetry \f$ \mathrm{C_{n}} \f$.
|
||||||
QPMS_PGS_S2N, ///< Rotoreflectional symmetry \f$ \mathrm{S_{2n}} \f$.
|
QPMS_PGS_S2N, ///< Rotoreflectional symmetry \f$ \mathrm{S_{2n}} \f$.
|
||||||
QPMS_PGS_CNH, ///< Rotational symmetry with horizontal reflection \f$ \mathrm{C_{nh}} \f$.
|
QPMS_PGS_CNH, ///< Rotational symmetry with horizontal reflection \f$ \mathrm{C_{nh}} \f$.
|
||||||
QPMS_PGS_CNV, ///< Pyramidal symmetry \f$ \mathrm{C_{nv}} \f$.
|
QPMS_PGS_CNV, ///< Pyramidal symmetry \f$ \mathrm{C_{nv}} \f$.
|
||||||
|
@ -361,7 +361,36 @@ typedef enum {
|
||||||
// Remaining continuous groups
|
// Remaining continuous groups
|
||||||
QPMS_PGS_SO3, ///< Special orthogonal group \f$ \mathrm{SO(3)}.
|
QPMS_PGS_SO3, ///< Special orthogonal group \f$ \mathrm{SO(3)}.
|
||||||
QPMS_PGS_O3, ///< Orthogonal group \f$ \mathrm{O(3)}.
|
QPMS_PGS_O3, ///< Orthogonal group \f$ \mathrm{O(3)}.
|
||||||
} qpms_pgs_class;
|
} qpms_pointgroup_class;
|
||||||
|
|
||||||
|
/// Full characterisation of a 3D point group.
|
||||||
|
typedef struct qpms_pointgroup_t {
|
||||||
|
qpms_pointgroup_class c; ///< Point group classification.
|
||||||
|
size_t n; ///< Order of the rotational subgroup \f$ \mathrm{C_n} \f$ of finite axial groups.
|
||||||
|
/// Transformation between this point group and the "canonical" point group of the same type.
|
||||||
|
/**
|
||||||
|
* Each 3D point group of a given type (specified by the \a c
|
||||||
|
* and \a n members) has its isomorphous "canonical instance",
|
||||||
|
* typically with the main rotation axis identical to the \a z
|
||||||
|
* cartesian axis and a mirror plane (if applicable) orthogonal
|
||||||
|
* to the \a x cartesian axis.
|
||||||
|
*
|
||||||
|
* If \f$ o \f$ is a transformation specified by \a orientation,
|
||||||
|
* then an element \f$ g \f$ of this group can be written
|
||||||
|
* as \f[
|
||||||
|
* g = o g_\mathrm{can.} o^{-1}
|
||||||
|
* \f] where \f$ g_\mathrm{can.} \f$ is a corresponding element
|
||||||
|
* from the canonical instance.
|
||||||
|
*
|
||||||
|
* CHECKME \f$ o \f$ transforms the cartesian \a z axis to the
|
||||||
|
* main rotation axis of this group (if applicable).
|
||||||
|
*
|
||||||
|
* TODO more detailed specification about the canonical instances
|
||||||
|
* and in which direction \a orientation goes.
|
||||||
|
*/
|
||||||
|
qpms_irot3_t orientation;
|
||||||
|
} qpms_pgs_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define lmcheck(l,m) assert((l) >= 1 && abs(m) <= (l))
|
#define lmcheck(l,m) assert((l) >= 1 && abs(m) <= (l))
|
||||||
|
|
Loading…
Reference in New Issue