[fdtd] reject zero and invalid CPML attenuation
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.
This commit is contained in:
parent
553cdf948c
commit
7b01ddd789
3 changed files with 17 additions and 1 deletions
|
|
@ -18,3 +18,7 @@ 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`.
|
||||
|
|
|
|||
Loading…
Reference in a new issue