Skip to main content

fmm.eigensolve_anisotropic_media

fmm.eigensolve_anisotropic_media

Performs the eigensolve for a layer with anisotropic permittivity.

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

Returns:

  • None: The LayerSolveResult.