|
| void | free_symoplist (SymOpList *ops) |
| |
| SymOpList * | get_pointgroup (const char *sym) |
| |
| SymOpMask * | new_symopmask (const SymOpList *list) |
| |
| void | free_symopmask (SymOpMask *m) |
| |
| void | special_position (const SymOpList *ops, SymOpMask *m, signed int h, signed int k, signed int l) |
| |
| void | get_asymm (const SymOpList *ops, signed int h, signed int k, signed int l, signed int *hp, signed int *kp, signed int *lp) |
| |
| int | num_equivs (const SymOpList *ops, const SymOpMask *m) |
| |
| void | get_equiv (const SymOpList *ops, const SymOpMask *m, int idx, signed int h, signed int k, signed int l, signed int *he, signed int *ke, signed int *le) |
| |
| IntegerMatrix * | get_symop (const SymOpList *ops, const SymOpMask *m, int idx) |
| |
| SymOpList * | get_ambiguities (const SymOpList *source, const SymOpList *target) |
| |
| int | is_subgroup (const SymOpList *source, const SymOpList *target) |
| |
| int | is_centrosymmetric (const SymOpList *s) |
| |
| const char * | symmetry_name (const SymOpList *ops) |
| |
| void | set_symmetry_name (SymOpList *ops, const char *name) |
| |
| void | describe_symmetry (const SymOpList *s) |
| |
|
char * | name_equiv (const IntegerMatrix *op) |
| |
| int | is_centric (signed int h, signed int k, signed int l, const SymOpList *ops) |
| |
|
void | pointgroup_warning (const char *sym) |
| |
| void | add_symop (SymOpList *ops, IntegerMatrix *m) |
| |
|
RationalMatrix * | parse_symmetry_operation (const char *s) |
| |
| SymOpList * | parse_symmetry_operations (const char *s) |
| |
| RationalMatrix * | parse_cell_transformation (const char *s) |
| |
|
char * | get_matrix_name (const IntegerMatrix *m, int row) |
| |
| void get_asymm |
( |
const SymOpList * | ops, |
|
|
signed int | h, |
|
|
signed int | k, |
|
|
signed int | l, |
|
|
signed int * | hp, |
|
|
signed int * | kp, |
|
|
signed int * | lp ) |
|
extern |
- Parameters
-
| ops | A SymOpList, usually corresponding to a point group |
| h | index of a reflection |
| k | index of a reflection |
| l | index of a reflection |
| hp | location for asymmetric index of reflection |
| kp | location for asymmetric index of reflection |
| lp | location for asymmetric index of reflection |
This function determines the asymmetric version of the reflection h, k, l in symmetry group ops, and puts the result in hp, kp, lp.
This is a relatively expensive operation because of its generality. Therefore, if you know you'll need to make repeated use of the asymmetric indices, consider creating a new RefList indexed according to the asymmetric indices themselves with asymmetric_indices. If you do that, you'll still be able to get the original versions of the indices with get_symmetric_indices.
| void get_equiv |
( |
const SymOpList * | ops, |
|
|
const SymOpMask * | m, |
|
|
int | idx, |
|
|
signed int | h, |
|
|
signed int | k, |
|
|
signed int | l, |
|
|
signed int * | he, |
|
|
signed int * | ke, |
|
|
signed int * | le ) |
|
extern |
- Parameters
-
| ops | A SymOpList |
| m | A SymOpMask, which has been shown to special_position |
| idx | Index of the operation to use |
| h | index of reflection |
| k | index of reflection |
| l | index of reflection |
| he | location to store h index of equivalent reflection |
| ke | location to store k index of equivalent reflection |
| le | location to store l index of equivalent reflection |
This function applies the idx-th symmetry operation from ops to the reflection h, k, l, and stores the result at he, ke and le.
Call this function multiple times with idx=0 .. num_equivs(ops, m) to get all of the equivalent reflections in turn.
If you don't mind that the same equivalent might appear twice, simply let m = NULL. Otherwise, call new_symopmask and then special_position to set up a SymOpMask appropriately.