# How FDTDX works

The solver is compact enough to understand from first principles. These chapters connect Maxwell's equations to the objects and arrays visible in Python.

::::{grid} 1 2 2 2
:gutter: 3

:::{grid-item-card} Yee-grid time stepping
:link: how_fdtd_works
:link-type: doc

Staggered fields, leapfrog updates, stability, and numerical dispersion.
:::

:::{grid-item-card} Grids and boundaries
:link: grids_and_boundaries
:link-type: doc

Uniform and rectilinear cells, PML, periodic/Bloch faces, PEC/PMC, and symmetry.
:::

:::{grid-item-card} Sources and detectors
:link: sources_and_detectors
:link-type: doc

Temporal profiles, plane/mode/TFSF excitation, phasors, flux, fields, and normalization.
:::

:::{grid-item-card} Materials
:link: materials
:link-type: doc

Loss, dispersion, full tensors, oriented crystals, and subpixel geometry.
:::

:::{grid-item-card} Modes and S-parameters
:link: modes_and_sparams
:link-type: doc

Cross-sectional eigenmodes, overlap amplitudes, port power, and consistent reference planes.
:::

:::{grid-item-card} Differentiation
:link: differentiation
:link-type: doc

Reverse-mode Maxwell gradients, memory strategies, parameter maps, and objective design.
:::

:::{grid-item-card} Pixel and spectral design bases
:link: design_bases
:link-type: doc

Swap pixels for cosine, Fourier, or radial waves without changing the FDTD objective.
:::

::::

```{toctree}
:hidden:
:maxdepth: 1

how_fdtd_works
grids_and_boundaries
sources_and_detectors
materials
modes_and_sparams
differentiation
design_bases
```
