Materials determine how electromagnetic waves propagate through the grid. FDTD OpenMP represents a linear, isotropic medium using four arrays: permittivity $\varepsilon$, permeability $\mu$, electric conductivity $\sigma_e$, and magnetic conductivity $\sigma_m$.
New simulations start in vacuum. Every cell receives $\varepsilon_0$ and $\mu_0$, with both conductivities zero. Changing properties over a range creates layers with different propagation speeds or impedances. In a homogeneous lossless region:
$$ c=\frac{1}{\sqrt{\mu\varepsilon}},\qquad \eta=\sqrt{\frac{\mu}{\varepsilon}} $$
A change in impedance can produce reflection as well as transmission. Conductivity adds attenuation, and matched electric and magnetic losses form the absorbing PML.
The C setters for $\varepsilon$ and $\mu$ take absolute values and half-open cell ranges: the start index is included and the end index is excluded. The command-line driver accepts relative values through --set-eps-r and --set-mu-r.
Simulation setters refresh the update coefficients after a material change. The kernels read these prepared coefficients rather than evaluating material formulas inside every time step.