Table of Contents
Update coefficients (1D FDTD)
Update coefficients combine material properties, conductivities, and grid steps into factors reused by the field kernels. FDTD OpenMP stores four arrays: ce1, ce2, ch1, and ch2.
For either field, let $p$ denote permittivity $\varepsilon$ or permeability $\mu$, and let $\sigma$ denote the corresponding conductivity. The coefficient pair is:
$$ a=\frac{\sigma\Delta t}{2p},\qquad C_1=\frac{1-a}{1+a},\qquad C_2=\frac{\Delta t}{p\Delta x(1+a)} $$
$C_1$ multiplies the previous field value. $C_2$ multiplies the difference between its two neighboring samples of the other field. Spatial division is already included in $C_2$, so the kernels need only subtraction, multiplication, and addition.
In a lossless cell, $\sigma = 0$, giving $C_1 = 1$ and $C_2 = \Delta t/(p\Delta x)$. Nonzero conductivity changes both coefficients to include damping.
Fdtd_EzCoeffsUpdate() prepares these arrays. Simulation setters for materials, boundaries, and grid steps call it again after changing their inputs. The PML therefore uses the ordinary field loops with coefficients derived from its graded losses.
