Update examples for sampled-interface tapers, explicit physical CPML spacing, copied SCPML widths, and the consolidated complex mode solver. Document breaking API changes, overlap measures, and PML convergence.
29 lines
953 B
Markdown
29 lines
953 B
Markdown
# 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.
|