System of equations
CoupledDipole.interaction_matrix_labframe! — Functioninteraction_matrix_labframe!(A,
    kn, R::Vector{SVector{3}},
    AlphaBlocks::Vector{SMatrix{3,3}})Interaction matrix
A:3N_dip x 3N_dipinteraction matrixkn: wavenumber in incident mediumR:N_dip-vector of 3-Svectors of particle positionsAlphaBlocks:N_dip-vector of 3x3 Smatrices (polarisability tensors in the lab frame)
CoupledDipole.incident_field! — Functionincident_field!(Ein,
    Ejones,
    kn, R::Vector{SVector{3}},
    IncidenceRotations)Incident field at particle positions
Ein:3N_dip x N_incmatrix, right-hand side of coupled-dipole systemEjones: tuple of 2 2-Svectors defining 2 orthogonal Jones polarisationskn: wavenumber in incident mediumR:N_dip-vector of 3-Svectors of particle positionsIncidenceRotations:N_inc-vector of rotation 3-Smatrices
CoupledDipole.polarisation! — Functionpolarisation!(P, E, AlphaBlocks)Self-consistent dipole moments from the electric field, P = αE
P:3N_dip x N_incmatrix, polarisations for all incidencesE:3N_dip x N_incmatrix, total field for all incidencesAlphaBlocks:N_dip-vector of 3x3 Smatrices (polarisability tensors in the lab frame)