fmm.eigensolve_general_anisotropic_media
fmm.eigensolve_general_anisotropic_media
Performs the eigensolve for a general anistropic layer.
Here, "general" refers to the fact that the layer material can be magnetic, i.e. the permeability and permittivity can be specified.
This function performs either a uniform-layer or patterned-layer eigensolve,
depending on the shape of the trailing dimensions of a given layer permittivity.
When the final two dimensions have shape (1, 1)
, the layer is treated as
uniform. Otherwise, it is patterned.
Args:
- wavelength: The free space wavelength of the excitation.
- in_plane_wavevector:
(kx0, ky0)
. - primitive_lattice_vectors: The primitive vectors for the real-space lattice.
- permittivity_xx: The xx-component of the permittivity tensor, with
shape
(..., nx, ny)
. - permittivity_xy: The xy-component of the permittivity tensor.
- permittivity_yx: The yx-component of the permittivity tensor.
- permittivity_yy: The yy-component of the permittivity tensor.
- permittivity_zz: The zz-component of the permittivity tensor.
- permeability_xx: The xx-component of the permeability tensor.
- permeability_xy: The xy-component of the permeability tensor.
- permeability_yx: The yx-component of the permeability tensor.
- permeability_yy: The yy-component of the permeability tensor.
- permeability_zz: The zz-component of the permeability tensor.
- expansion: The field expansion to be used.
- formulation: Specifies the formulation to be used, or a callable which computes the tangent vector field for a custom vector FMM formulation.
- vector_field_source: Optional array used to calculate the vector field for
vector formulations of the FMM. If not specified,
(permittivity_xx + permittivity_yy) / 2
is used. Ignored for theFFT
formulation. Should have shape matching the permittivities and permeabilities.
Returns:
- None: The
LayerSolveResult
.