meanas/docs/api/fdfd.md

36 lines
1.4 KiB
Markdown
Raw Normal View History

2026-04-18 15:05:35 -07:00
# fdfd
::: meanas.fdfd
## Core operator layers
::: meanas.fdfd.functional
::: meanas.fdfd.operators
::: meanas.fdfd.solvers
::: meanas.fdfd.scpml
::: meanas.fdfd.farfield
## SCPML conventions
`stretch_with_scpml` now uses `-1` for the low-index face and `+1` for the
high-index face, matching CPML and propagation conventions. It returns copied
widths by default; pass `copy=False` to request mutation explicitly.
Both SCPML builders accept `kappa_function(depth)` for real stretching and
`max_imag_ratio` to limit the final dimensionless `abs(Im(s))/Re(s)`. Start a
mode-solver convergence study with `max_imag_ratio=1.0`: overly strong imaginary
stretching can produce above-light-line PML artifacts. The cap is not a general
spectral guarantee, and weaker absorption can increase boundary reflections.
Check domain size, PML thickness, strength, mode localization, and residuals.
The general scattering profile remains uncapped by default.
`uniform_grid_scpml` builds unit widths by applying `stretch_with_scpml` to
both faces of each enabled axis. Both builders divide imaginary grading by
physical layer thickness and sample electric widths at cell centers and
magnetic widths at cell edges. This corrects the uniform builder's previous
thickness-independent strength and reversed E/H sample offsets; retune existing
uniform-builder profiles using domain/PML convergence checks.