differt.em.compute_received_fields

differt.em.compute_received_fields#

compute_received_fields(paths, mesh, frequency=None, *, solver='geometric', **solver_kwargs)[source]#

Compute the received complex fields for each path.

This is a convenience wrapper around a AbstractFieldSolver, defaulting to GeometricFieldSolver. Pass a custom solver instance to customize how fields are computed, e.g., to add support for path interaction types beyond InteractionType.REFLECTION.

Parameters:
  • paths (TracedPaths) – The paths.

  • mesh (Mesh) – The triangle mesh of the scene.

  • frequency (Float[ArrayLike, "*#batch"] | None) –

    The operating frequency (or frequencies) in Hz.

    May be omitted (left to None) when solver’s (or the tx_polarization solver keyword argument’s) tx_polarization is an AbstractAntenna instance, in which case its own frequency is used instead.

  • solver (AbstractFieldSolver | Literal['geometric']) –

    The field solver configuration or string shortcut.

    Defaults to a plain GeometricFieldSolver.

  • **solver_kwargs (Any) – Parameters passed to the solver configuration when it is instantiated from a string shortcut (see GeometricFieldSolver’s attributes, e.g., tx_polarization, rx_polarization, radio_materials, tx_wavefront_radii, interaction_matrices, or per-call wavefront_radii). Not allowed when solver is already a solver instance, except for wavefront_radii.

Return type:

Complex[Array, "*batch"]

Returns:

The received complex fields.