![]() |
QPMS
Electromagnetic multiple scattering library and toolkit.
|
Functions providing point group operations operating on translation operators and T-matrices. More...

Go to the source code of this file.
Functions | |
| complex double * | qpms_zflip_uvswi_dense (complex double *target, const qpms_vswf_set_spec_t *bspec) |
| Dense matrix representation of the z coordinate sign flip operation (xy-plane mirroring). More... | |
| complex double * | qpms_yflip_uvswi_dense (complex double *target, const qpms_vswf_set_spec_t *bspec) |
| Dense matrix representation of the y coordinate sign flip operation (xz-plane mirroring). More... | |
| complex double * | qpms_xflip_uvswi_dense (complex double *target, const qpms_vswf_set_spec_t *bspec) |
| Dense matrix representation of the x coordinate sign flip operation (yz-plane mirroring). More... | |
| complex double * | qpms_zrot_uvswi_dense (complex double *target, const qpms_vswf_set_spec_t *bspec, double phi) |
| Dense matrix representation of a rotation around the z-axis. More... | |
| complex double * | qpms_zrot_rational_uvswi_dense (complex double *target, const qpms_vswf_set_spec_t *bspec, int N, int w) |
| Dense matrix representation of a "rational" rotation around the z-axis. More... | |
| complex double * | qpms_irot3_uvswfi_dense (complex double *target, const qpms_vswf_set_spec_t *bspec, const qpms_irot3_t transf) |
| Dense matrix (uvswi-indexed) representation of any O(3) transformation. More... | |
| size_t | qpms_zero_roundoff_clean (double *arr, size_t nmemb, double atol) |
| Cleans the roundoff error of an array. More... | |
| size_t | qpms_czero_roundoff_clean (complex double *arr, size_t nmemb, double atol) |
| Cleans the roundoff error of an array. More... | |
Functions providing point group operations operating on translation operators and T-matrices.
Here will be functions providing point group operations operating on translation operators and T-matrices similar to tmatrices.py.
At least I want:
Maybe (much later) also point and space group irrep functionality as in symmetries.py. However, I think that the group structures can be simply hard-coded/generated by a python script, then there is no need to check the group consistency etc. at runtime.
| size_t qpms_czero_roundoff_clean | ( | complex double * | arr, |
| size_t | nmemb, | ||
| double | atol | ||
| ) |
Cleans the roundoff error of an array.
Works on real and imaginary parts separately. TODO doc.
| complex double* qpms_irot3_uvswfi_dense | ( | complex double * | target, |
| const qpms_vswf_set_spec_t * | bspec, | ||
| const qpms_irot3_t | transf | ||
| ) |
Dense matrix (uvswi-indexed) representation of any O(3) transformation.
| target | If NULL, a new array is allocated. |
| complex double* qpms_xflip_uvswi_dense | ( | complex double * | target, |
| const qpms_vswf_set_spec_t * | bspec | ||
| ) |
Dense matrix representation of the x coordinate sign flip operation (yz-plane mirroring).
| target | If NULL, a new array is allocated. |
| complex double* qpms_yflip_uvswi_dense | ( | complex double * | target, |
| const qpms_vswf_set_spec_t * | bspec | ||
| ) |
Dense matrix representation of the y coordinate sign flip operation (xz-plane mirroring).
| target | If NULL, a new array is allocated. |
| size_t qpms_zero_roundoff_clean | ( | double * | arr, |
| size_t | nmemb, | ||
| double | atol | ||
| ) |
Cleans the roundoff error of an array.
Replaces all the array members x for which |x| <= atol with exact zeros.
Returns the count of modified array members.
| complex double* qpms_zflip_uvswi_dense | ( | complex double * | target, |
| const qpms_vswf_set_spec_t * | bspec | ||
| ) |
Dense matrix representation of the z coordinate sign flip operation (xy-plane mirroring).
| target | If NULL, a new array is allocated. |
| complex double* qpms_zrot_rational_uvswi_dense | ( | complex double * | target, |
| const qpms_vswf_set_spec_t * | bspec, | ||
| int | N, | ||
| int | w | ||
| ) |
Dense matrix representation of a "rational" rotation around the z-axis.
Just for convenience. Corresponds to the angle \( \phi = 2\piw/N \).
| target | If NULL, a new array is allocated. |
| complex double* qpms_zrot_uvswi_dense | ( | complex double * | target, |
| const qpms_vswf_set_spec_t * | bspec, | ||
| double | phi | ||
| ) |
Dense matrix representation of a rotation around the z-axis.
| target | If NULL, a new array is allocated. |
| phi | Rotation angle |