MieStratifiedSphere#

class deeptrack.optical.scatterers.MieStratifiedSphere(radius: tuple[float, ...] = (1e-06,), refractive_index: tuple[float, ...] = (1.45,), **kwargs: Any)#

Bases: MieScatterer

Scattered field produced by a stratified sphere.

In “geometric” mode, accurate results typically require a sufficiently large simulation grid (often at least 64 × 64) and adequate padding, because the scattered field is sampled on a finite virtual plane before propagation. In contrast, the “hybrid” mode is generally less sensitive to grid size and field-of-view.

The induced phase shift is defined relative to the refractive_index_medium of the optical configuration.

Parameters#

radius: list[float]

The radius of each cell in increasing order.

refractive_index: list[float]

Refractive index of each cell in the same order as radius.

L: int | str

The number of terms used to evaluate the mie theory. If “auto”, it determines the number of terms automatically.

position: tuple[float, float] | tuple[float, float, float]

The position of the particle. Third index is optional, and represents the position in the direction normal to the camera plane.

z: float

The position in the direction normal to the camera plane. Used if position is of length 2.

offset_z: “auto” | float

Distance from the particle in the z direction the field is evaluated. If “auto”, this is calculated from the pixel size and collection_angle.

collection_angle: “auto” | float

The maximum collection angle in radians. If “auto”, this is calculated from the objective NA (which is true if the objective is the limiting aperature).

input_polarization: float | Quantity

Defines the polarization angle of the input. For simulating circularly polarized light we recommend a coherent sum of two simulated fields.

output_polarization: float | Quantity

Defines the angle of the polarization filter after the sample. For off-axis, keep the same as input_polarization.