solprop.translate.flux#

Build the axial-admittance plan of one spatial plane (SEP 34).

A free-space field’s power crossing a plane is measured with the scalar forward equation’s axial admittance Y_c = eps0 c**2 k_z / omega of the medium at that plane (docs/guide/free-space/flux.md). Every evaluation reads the one longitudinal root of solprop.translate.spatial.longitudinal_root(), on the same separable coefficients the propagation uses, so a plane’s measure and its propagation see the same k_z.

Functions

flux_from_record(record)

Rebuild a plane measure from its output record.

flux_plan(space, dispersion, linear, *, tol)

Build the run's plane-measure coefficients for its statistics.

flux_record(plan)

Return a plane measure as plain arrays for the output's spatial record.

plane_coefficients(space, medium, grid, z, *)

Return the separable coefficients of one plane's medium.

solprop.translate.flux.flux_from_record(record)[source]#

Rebuild a plane measure from its output record.

Parameters:
recordcollections.abc.Mapping

The flux_plan entry of a spatial output record.

Returns:
FluxPlan

The run’s plane measure, whose FluxPlan.at gives a saved plane’s coefficients at its own position.

solprop.translate.flux.flux_plan(space, dispersion, linear, *, tol, admission=None)[source]#

Build the run’s plane-measure coefficients for its statistics.

Cartesian, line and planar runs are uniform along z, so the run’s own separable coefficients are the measure everywhere. A radial run’s coefficients at the entrance are paired with a z table of the material square when its medium varies, built on the medium’s breakpoints as mandatory edges.

Parameters:
spacesolprop.grid.RadialGrid, solprop.grid.FreeGrid or PlanarGrid

Transverse geometry.

dispersionsolprop.spatial.SpatialDispersion

The run’s medium, temporal grid and evanescent cap.

linearsolprop.translate.linop.LinearOperator

The run’s linear operator: its separable record and its span.

tolfloat

Relative tolerance of the material table, positive.

admissionsolprop.adiabatic.AdiabaticAdmission or None, optional

The varying path’s certificate, carried with the plan.

Returns:
FluxPlan

The run’s plane measure.

solprop.translate.flux.flux_record(plan)[source]#

Return a plane measure as plain arrays for the output’s spatial record.

Parameters:
planFluxPlan or None

The run’s plane measure.

Returns:
dict

The coefficients flux_from_record() rebuilds the measure from.

Raises:
TranslationError

If a spatial run carries no plane measure.

solprop.translate.flux.plane_coefficients(space, medium, grid, z, *, evanescent_rate=200.0)[source]#

Return the separable coefficients of one plane’s medium.

The material square and the transverse squares are split exactly as the run’s own operator splits them (radial: rounded squares; Cartesian and planar: a rounded square and its exact residual; planar: each channel’s wall term), so the plane’s k_z is the propagation’s to rounding. The frame, rates and prefactors are not part of the measure and are left zero.

Parameters:
spacesolprop.grid.RadialGrid, solprop.grid.FreeGrid or PlanarGrid

Transverse geometry of the plane.

mediumsolprop.spatial.SpatialMedium

The bulk medium; for a planar grid, the slab modes’ own fill.

gridsolprop.grid.TimeGrid

Temporal grid; only its active band samples the material.

zfloat

Finite position of the plane in m, at which the medium is evaluated.

evanescent_ratefloat, optional

Evanescent attenuation cap in m^-1 carried for the root’s rate.

Returns:
SeparableOperator

Coefficients with the plane’s material and transverse squares.

Raises:
MaterialError

If the position is not finite.