QPMS
Electromagnetic multiple scattering library and toolkit.
Data Fields
qpms_scatsys_t Struct Reference

Common "class" for system of scatterers, both periodic and non-periodic. More...

#include <scatsystem.h>

Collaboration diagram for qpms_scatsys_t:
Collaboration graph
[legend]

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_ttmg
 (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_ttm
 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_tp
 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_tsym
 Symmetry group of the array.
 
qpms_ss_pi_tp_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_ttm_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_torbit_types
 (Array length is orbit_type_count.)
 
qpms_ss_particle_orbitinfo_tp_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_tp_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_calculatorc
 
qpms_scatsys_periodic_info_t per
 Periodic lattice metadata.
 

Detailed Description

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).

Field Documentation

◆ max_bspecn

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.

◆ p_sym_map

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.

◆ saecv_ot_offsets

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.

◆ tmg

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.


The documentation for this struct was generated from the following file: