mercurial.core.fdtd module

2D FDTD solver with empirical biological tissue parameters.

class mercurial.core.fdtd.FDTD2D(nx: int, ny: int, dx: float, dy: float, tissue_type: str = 'gray_matter', frequency: float = 1000000000.0, pml_thickness: int = 10, pml_strength: float = 0.1)[source]

Bases: object

2D FDTD solver (TMz polarisation) with empirical tissue dielectric properties.

Methods

get_intensity

step

__init__(nx: int, ny: int, dx: float, dy: float, tissue_type: str = 'gray_matter', frequency: float = 1000000000.0, pml_thickness: int = 10, pml_strength: float = 0.1)[source]
Parameters:
nx, nyint

Grid dimensions (number of Yee cells).

dx, dyfloat

Spatial steps (m).

tissue_typestr

‘gray_matter’ or ‘white_matter’ (default ‘gray_matter’).

frequencyfloat

Operating frequency (Hz) for dielectric properties (default 1e9).

pml_thicknessint

Number of PML cells on each boundary.

pml_strengthfloat

PML conductivity scaling factor.

get_intensity() ndarray[source]
step(source: Callable[[int, int, float], float] | None = None, t: float = 0.0) None[source]