QPMS
Electromagnetic multiple scattering library and toolkit.
|
Point groups. More...
Go to the source code of this file.
Data Structures | |
struct | qpms_finite_group_irrep_t |
To be used only in qpms_finite_group_t. More... | |
struct | qpms_finite_group_t |
A point group with its irreducible representations and some metadata. More... | |
Typedefs | |
typedef struct qpms_finite_group_t | qpms_finite_group_t |
A point group with its irreducible representations and some metadata. More... | |
Functions | |
static qpms_gmi_t | qpms_finite_group_mul (const qpms_finite_group_t *G, qpms_gmi_t a, qpms_gmi_t b) |
Group multiplication. | |
static qpms_gmi_t | qpms_finite_group_inv (const qpms_finite_group_t *G, qpms_gmi_t a) |
Group element inversion. | |
static _Bool | qpms_iri_is_valid (const qpms_finite_group_t *G, qpms_iri_t iri) |
qpms_iri_t | qpms_finite_group_find_irrep_by_name (qpms_finite_group_t *G, char *name) |
NOT IMPLEMENTED Get irrep index by name. | |
Variables | |
const qpms_finite_group_t | QPMS_FINITE_GROUP_TRIVIAL |
Trivial group. | |
const qpms_finite_group_t | QPMS_FINITE_GROUP_TRIVIAL_G |
Trivial group, with one (reduntant) generator. More... | |
Point groups.
Right now, the instances of qpms_finite_group_t are created at compilation time from source code generated by Python script TODO (output groups.c) and they are not to be constructed dynamically.
In the end, I might want to have a special type for 3D point groups or more specifically, for the closed subgroups of O(3), see https://en.wikipedia.org/wiki/Point_groups_in_three_dimensions. They consist of the seven infinite series of axial groups (characterized by the series index, the axis direction, and the index n of the n-fold rotational symmetry) and the seven remaining point groups + the finite groups. All off them have a quite limited number of generators (max. 4?; CHECKME). The goal is to have some representation that would enable to
typedef struct qpms_finite_group_t qpms_finite_group_t |
A point group with its irreducible representations and some metadata.
The structure of the group is given by the multiplication table mt.
Each element of the group has its index from 0 to order. The metadata about some element are then accessed using that index.
All members are in principle optional except order and mt.
Note: after changing this struct, don't forget to update the Python method SVWFPointGroupInfo.generate_c_source().
|
extern |
Trivial group, with one (reduntant) generator.
For the trivial group, zero generators are enough. However, some functions might be not robust enough and require a first generator to work properly.