# Beams, dipoles, and scattering

This track moves from prescribed incident fields to radiation and scattering geometries.

## Gaussian beam

A Gaussian plane source needs more than a Gaussian amplitude mask: its phase curvature, propagation direction, polarization, and finite aperture must remain mutually consistent.

```{figure} ../_static/generated/gaussian_beam.png
:alt: Gaussian beam field with curved phase fronts
```

```bash
uv run fdtdx-bench run --case analytical_gaussian_source
```

The test covers beam power and Fresnel behavior. Inspect the beam away from the launch plane as well as at it; a malformed phase profile often looks correct only at the source.

## Dipole radiation

A point dipole is a stringent local source. Its radiated pattern has a null along the dipole axis and symmetry in the transverse plane. Integrated radiated power supplies an independent scalar check.

```{figure} ../_static/generated/dipole_field.png
:alt: Dipole radiation field
```

```bash
uv run fdtdx-bench run --case analytical_dipole_radiation
```

## Separate incident and scattered fields

TFSF injection introduces equivalent currents on a closed surface. Within the surface the field is incident plus scattered; outside it is scattered only.

```{figure} ../_static/generated/tfsf.svg
:alt: Total-field scattered-field region around a scatterer
```

```bash
uv run fdtdx-bench run --case analytical_tfsf_region
uv run fdtdx-bench run --case analytical_tfsf_grid
```

The first checks cancellation and a dispersive background. The second checks that injection uses grid metrics correctly rather than accidentally assuming uniform cells.

## Scatter from a cylinder

The 2D dielectric cylinder closes the loop: a known plane wave, TFSF separation, a curved interface, and comparison with Mie theory or Tidy3D.

```bash
uv run fdtdx-bench run --case analytical_mie_cylinder
uv run fdtdx-bench run --case parity_mie2d_cylinder
```

The pair is useful diagnostically. If theory and Tidy3D comparisons move together, discretization is the likely cause; if only one path fails, inspect normalization and golden conventions.

