planeWave

Description

The planeWave class applies the Multipoles class to model plane waves, that can be used for interactions with a spherical scatterer. It computes multipolar field contributions for specified polarizations (linear or circular) and supports visualization of field components or total intensity. The implementation uses vector spherical harmonics and sets beam coefficients to unity for plane waves, simplifying the multipolar expansion.

Initialization

Creating an instance of the planeWave class initializes the beam parameters, spherical coordinate grids, and multipolar coefficients. It inherits from the Multipoles class, using its parameters (l_max, m_max, wl, domain, nr, radius) and sets up the plane wave properties with a fixed maxJ = 40 for a good approximation.

planeWave(wavelength, domain, polarization="x")

float — wavelength of the incident beam (in microns).

domain_class object — spatial domain for field evaluation.

str — polarization type: "x", "y", "left circular", or "right circular". Defaults to "x".

Methods


Computes the total multipolar field for the plane wave by summing over \(j\)-indexed electric and magnetic multipole contributions: \[A = \sum_{j=1}^{{\text{max}_j}} i^j \sqrt{2j+1} \left[ A_{j m_z}^{(m)} + i p A_{j m_z}^{(e)} \right]\] where \(A_{j m_z}^{(e/m)}\) are computed using get_multipoles() with the selected spatial_fun ("bessel", "hankel", etc.).


Returns the analytic field profile for a plane wave with given polarization in the circular or Cartesian basis, e.g. \(A=\exp{ikz}\mathbf{e_x}\) for polarization in \(x\). Used for visualization and comparison. Also returns labels for the field components.


Visualizes the real part of the plane wave field across all defined planes (to confirm oscillations in the direction of propagation instead of a constant value). Can display:

The globalnorm flag sets whether all plots share a common color scale.

Comments