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