pymiediff.multishell.nearfields

Contents

pymiediff.multishell.nearfields#

pymiediff.multishell.nearfields(k0, r_probe, r_layers=None, eps_layers=None, r_c=None, eps_c=None, r_s=None, eps_s=None, eps_env=1.0, E_0=1, backend='pena', precision='double', which_jn='recurrence', n_max=None)#

Compute incident, scattered, and total near fields.

Parameters:
  • k0 (tensor-like) – Vacuum wavevector(s), rad/nm.

  • r_probe (tensor-like) – Cartesian probe coordinates with last dimension 3.

  • r_layers (tensor-like) – Geometry/material inputs (multilayer-first with legacy fallback).

  • eps_layers (tensor-like) – Geometry/material inputs (multilayer-first with legacy fallback).

  • r_c (tensor-like) – Geometry/material inputs (multilayer-first with legacy fallback).

  • eps_c (tensor-like) – Geometry/material inputs (multilayer-first with legacy fallback).

  • r_s (tensor-like) – Geometry/material inputs (multilayer-first with legacy fallback).

  • eps_s (tensor-like) – Geometry/material inputs (multilayer-first with legacy fallback).

  • eps_env (tensor-like) – Geometry/material inputs (multilayer-first with legacy fallback).

  • E_0 (complex or float, default=1) – Incident field amplitude.

  • backend ({"pena", "torch", "scipy"}, default="pena") – Coefficient backend.

  • precision ({"single", "double"}, default="double") – Precision for torch-based routines.

  • which_jn ({"recurrence", "ratios"}, default="recurrence") – Torch-only spherical j_n implementation.

  • n_max (int, optional) – Truncation order. Auto-estimated when omitted.

Returns:

E_i, H_i, E_s, H_s, E_t, and H_t.

Return type:

dict