![]() |
QPMS
Electromagnetic multiple scattering library and toolkit.
|
Common "class" for system of scatterers, both periodic and non-periodic. More...
#include <scatsystem.h>

Data Fields | |
| int | lattice_dimension |
| Number of dimensions in which the system is periodic from the range 0–3. | |
| struct qpms_epsmu_generator_t | medium |
| Optical properties of the background medium. | |
| qpms_tmatrix_function_t * | tmg |
| (Template) T-matrix functions in the system. More... | |
| qpms_ss_tmgi_t | tmg_count |
| Number of all different original T-matrix generators in the system. | |
| qpms_ss_derived_tmatrix_t * | tm |
| All the different T-matrix functions in the system, including those derived from tmg elements by symmetries. | |
| qpms_ss_tmi_t | tm_count |
| Number of all different T-matrices in the system (length of tm[]). | |
| qpms_ss_tmi_t | tm_capacity |
| Capacity of tm[]. | |
| qpms_particle_tid_t * | p |
| Particles. | |
| qpms_ss_pi_t | p_count |
| Size of particles array. | |
| qpms_ss_pi_t | p_capacity |
| Capacity of p[]. | |
| const struct qpms_finite_group_t * | sym |
| Symmetry group of the array. | |
| qpms_ss_pi_t * | p_sym_map |
| p_sym_map[idi + pi * sym->order] gives the index of pi-th particle under the idi'th sym op. More... | |
| qpms_ss_tmi_t * | tm_sym_map |
| Which t-matrices map onto which by the symmetry ops. Lookup by tm_sum_map[idi + tmi * sym->order]. | |
| qpms_ss_oti_t | orbit_type_count |
| qpms_ss_orbit_type_t * | orbit_types |
| (Array length is orbit_type_count.) | |
| qpms_ss_particle_orbitinfo_t * | p_orbitinfo |
| Orbit type identification of each particle. (Array length is p_count.) | |
| size_t | fecv_size |
| Number of elements of a full excitation coefficient vector size. | |
| size_t * | saecv_sizes |
| Number of elements of symmetry-adjusted coefficient vector sizes (order as in sym->irreps). | |
| size_t * | fecv_pstarts |
| Indices of where pi'th particle's excitation coeffs start in a full excitation coefficient vector. | |
| size_t * | saecv_ot_offsets |
| TODO DOC. In the packed vector, saecv_ot_offsets[iri * orbit_type_count + oti] indicates start of ot. More... | |
| size_t | max_bspecn |
| **< First index is irrep index as in sym->irreps, second index is particle index. */ More... | |
| qpms_ss_pi_t * | p_by_orbit |
| Particles grouped by orbit (in the order corresponding to the packed memory layout). | |
| char * | otspace |
| char * | otspace_end |
| double | lenscale |
| struct qpms_trans_calculator * | c |
| qpms_scatsys_periodic_info_t | per |
| Periodic lattice metadata. | |
Common "class" for system of scatterers, both periodic and non-periodic.
Infinite periodic structures (those with lattice_dimension > 0) have the per filled. These are ignored for finite systems (lattice_dimension == 0).
| size_t qpms_scatsys_t::max_bspecn |
**< First index is irrep index as in sym->irreps, second index is particle index. */
Maximum tm[...]->spec->n. Mainly for workspace allocation.
| qpms_ss_pi_t* qpms_scatsys_t::p_sym_map |
p_sym_map[idi + pi * sym->order] gives the index of pi-th particle under the idi'th sym op.
Which particles map onto which by the symmetry ops.
| size_t* qpms_scatsys_t::saecv_ot_offsets |
TODO DOC. In the packed vector, saecv_ot_offsets[iri * orbit_type_count + oti] indicates start of ot.
TODO maybe move it to qpms_ss_orbit_type_t, ffs.
| qpms_tmatrix_function_t* qpms_scatsys_t::tmg |
(Template) T-matrix functions in the system.
The qpms_abstract_tmatrix_t objects (onto which this array member point) are NOT owned by this and must be kept alive for the whole lifetime of all qpms_scatsys_t objects that are built upon them.