Expand description
Multipole bases of modes at expansion positions, and the expansion gradients shared by the spherical and cylindrical families.
Upstream: treams.SphericalWaveBasis and treams.CylindricalWaveBasis. The gradients
are a treams-rs extension.
An expansion entry depends on the displacement destination - source between two
positions. Its position cotangent therefore adds to the destination position and
subtracts from the source position (ExpansionGradient).
Structs§
- Basis
- Modes of one multipole family at Cartesian expansion positions;
crate::sw::Basisandcrate::cw::Basisname the two families. - Expansion
Gradient - Expansion cotangents, separating destination and source position dependence.
- Lattice
Expansion Gradient - Periodic coupling cotangents including the lattice geometry.
Enums§
- Multipole
Basis - A spherical or cylindrical basis, for operations that accept either family: field evaluation, plane-wave expansion and the EBCM surface waves.
Traits§
- Mode
Label - The mode label of one multipole family:
crate::sw::Modeorcrate::cw::Mode.
Functions§
- add_
pair_ 🔒gradient - Pull the cotangent
cotof an entry depending on the displacementdestination[p] - source[q](derivativeposition) and the medium wavenumber of polarizationpol(derivativek) back intoresult. - pair_
tangent 🔒 - Contract an entry’s local derivatives with its position and medium directions.
- validate_
expansion_ 🔒tangent - Validate the continuous directions shared by finite and lattice expansions.
- validate_
wavenumbers 🔒 - Check the medium wavenumbers
ks(negative, positive helicity) of a basis operation: both finite, nonzero unlessallow_zero, and equal for parity polarizations (helicityfalse), because parity waves exist only in an achiral medium. Operations that never mix polarizations passhelicity = true.