Require a finite negative ln_R_per_layer before coefficient evaluation. Document None entries as the supported way to disable a face, and cover zero, signed zero, positive, and nonfinite targets with and without frequency shift. Validation: 209 focused tests passed; Ruff passed.
685 B
685 B
fdtd
::: meanas.fdtd
Core update and analysis helpers
::: meanas.fdtd.base
::: meanas.fdtd.pml
::: meanas.fdtd.boundaries
::: meanas.fdtd.energy
::: meanas.fdtd.phasor
CPML derivatives use electric widths for forward differences and magnetic
widths for backward differences. cpml_params(..., dx=1.0) specifies the uniform
physical cell width normal to a face; arbitrary nonuniform PML grading is not
implemented by this constructor. Scale the timestep consistently with the grid.
ln_R_per_layer must be finite and strictly negative. Zero attenuation raises
ValueError; disable individual CPML faces with None in the parameter table
passed to updates_with_cpml.