tidy3d.plugins.dipole_emission.DipoleEmissionStudyData#

class DipoleEmissionStudyData[source]#

Bases: Tidy3dBaseModel

Reduced result from a DipoleEmissionStudy.

Parameters:
  • radiation_intensity (DipoleEmissionStudyDataArray) – Radiated angular power density per squared electric dipole moment in C*um. The source_time spectrum from the study is included.

  • radiation_intensity_at_positions (Optional[DipoleEmissionStudyPositionDataArray] = None) – Radiation intensity at positions selected by the study store_position_indexes.

  • study (DipoleEmissionStudy) – Study definition used to generate this result.

  • any (The default data arrays are summed over the study positions using)

  • by (position- and axis-dependent position_weights and are indexed)

  • orientation (Cartesian dipole)

  • polarization (far-field)

  • angle (observation)

  • and

  • electric (frequency. They represent angular radiation intensity per squared)

  • moment (dipole)

  • C*um (with dipole moment expressed in)

  • collection (into the)

  • study. (half-space defined by the)

  • the (radiation_intensity_transfer(...) normalizes the stored intensity by)

  • emitter (total power the same dipoles would emit in a uniform medium at the)

  • when (refractive index. Optional position-resolved arrays are present only)

  • is (the study store_position_indexes is nonempty. Raw BatchData)

  • use (intentionally not stored here;)

  • ``DipoleEmissionStudy.run(...

  • batch (return_batch_data=True)`` or manual)

  • needed. (execution when diagnostic monitor data is)

Attributes

phi

Azimuthal observation angles (radians) of the angle dimension.

theta

Polar observation angles (radians) of the angle dimension.

radiation_intensity

radiation_intensity_at_positions

study

Methods

radiation_intensity_transfer(...)

Position-summed cavity transfer, in 1/sr.

radiation_intensity_transfer_at_positions(...)

Position-resolved cavity transfer at the stored positions, in 1/sr.

radiation_intensity#
radiation_intensity_at_positions#
study#
property theta#

Polar observation angles (radians) of the angle dimension.

property phi#

Azimuthal observation angles (radians) of the angle dimension.

radiation_intensity_transfer(bulk_refractive_index)[source]#

Position-summed cavity transfer, in 1/sr.

The stored radiation_intensity (the position_weights-weighted sum over the sampled dipoles) is normalized by the total power the same weighted dipoles would emit in a uniform medium: T = radiation_intensity / sum_i(w_i * P_bulk_i) with P_bulk_i(omega) = n_i * omega**4 * mu_0 / (12 pi c) * |S(omega)|**2 the bulk emitted power of dipole i per squared dipole moment in C*um. Integrating T over solid angle gives the radiative Purcell factor; a bulk emitter integrates to 1 over the full sphere, so a single study, which collects one half-space (abs(theta) < pi/2), integrates to 1/2.

A fully zeroed orientation column in 2D position_weights (e.g. a horizontal-only emitter with no z-dipole) gives NaN for that orientation: both the radiated and the bulk power are identically zero, so the transfer is undefined there rather than numerically wrong.

Parameters:

bulk_refractive_index (float | ArrayFloat1D) – Real refractive index of the uniform reference medium containing the emitters. This is the emitter-side index of the bulk reference; it is distinct from the collection-side background index already baked into radiation_intensity, and the two coincide only when emitter and collection media match. Provide a scalar, or one value per sampled position (length positions.sizes["index"], in positions order) when positions span different media.

Returns:

Transfer with dimensions (dipole_axis, polarization, angle, f), in the dtype of radiation_intensity.

Return type:

DipoleEmissionStudyDataArray

radiation_intensity_transfer_at_positions(bulk_refractive_index)[source]#

Position-resolved cavity transfer at the stored positions, in 1/sr.

Each stored dipole’s radiation intensity is normalized by its own bulk emitted power P_bulk_i; see radiation_intensity_transfer(). Returns None when the study stores no individual positions.

Parameters:

bulk_refractive_index (float | ArrayFloat1D) – Real refractive index of the uniform reference medium. Provide a scalar, or one value per stored position (length matching the index dimension of radiation_intensity_at_positions, in its index coordinate order).

Returns:

Transfer with dimensions (index, dipole_axis, polarization, angle, f), in the dtype of radiation_intensity_at_positions.

Return type:

DipoleEmissionStudyPositionDataArray | None