solprop.backends.numpy_ref.populations#

The reference’s scan of the field synthesised on the axis (SEP 19).

Functions

axis_populations(problem, field, z, axis)

Scan the field synthesised on the axis: one row, every channel (SEP 19).

solprop.backends.numpy_ref.populations.axis_populations(problem, field, z, axis)[source]#

Scan the field synthesised on the axis: one row, every channel (SEP 19).

The reference’s, on the host: the axis is one row per saved plane, against every node of every stage; the native session scans the same row natively. The field is the same as the node fields’ – the same pad scale, taper and fine grid – with both Cartesian components of the mode profiles, as for peak_intensity; when the state carries the components itself, the profile’s magnitude on the axis is the scalar synthesis. The tables, preionisation and running-integral rule are the node scan’s.

Parameters:
problemPropagationProblem

The translated problem.

fieldnumpy.ndarray

One batch member’s state, shape (n_modes, n_pol, n_omega).

zfloat

Plane position in m.

axisnumpy.ndarray

The mode set’s synthesis on the axis at z, taper included, rows x and y (HostDriver._on_axis_synthesis).

Returns:
tuple of numpy.ndarray

The final ionised fraction and the largest rate (cycle-averaged on an envelope grid) on the axis, one per channel.