NLSE.propagate#

NLSE.propagate(a_v, z, z_stop, dz, local_error, k5_v=None, cont=False)[source]#

Propagate the given pulse spectrum from z to z_stop using an adaptive step size algorithm.

The step size algorithm utilizes an embedded Runge–Kutta scheme with orders 3 and 4 (ERK4(3)-IP) [1].

Parameters:
a_vndarray of complex

The root-power spectrum of the pulse.

zfloat

The starting point.

z_stopfloat

The stopping point.

dzfloat

The initial step size.

local_errorfloat

The relative local error of the adaptive step size algorithm.

k5_vndarray of complex, optional

The action of the nonlinear operator on the solution from the preceding step. The default is None.

contbool, optional

A flag that indicates the current step is continuous with the previous, i.e. that it begins where the other ended. The default is False.

Returns:
a_vndarray of complex

The root-power spectrum of the pulse.

zfloat

The z position in the mode.

dzfloat

The step size.

k5_vndarray of complex

The nonlinear action of the 4th-order result.

contbool

A flag indicating that the next step may be continuous.

References

[1]

S. Balac and F. Mahé, “Embedded Runge–Kutta scheme for step-size control in the interaction picture method,” Computer Physics Communications, Volume 184, Issue 4, 2013, Pages 1211-1219 https://doi.org/10.1016/j.cpc.2012.12.020