Model#

class pynlo.model.Model(pulse, mode)[source]#

Bases: object

A model for simulating single-mode pulse propagation.

This model only implements linear effects.

Parameters:
pulsePulse

The input pulse.

modeMode

The optical mode in which the pulse propagates.

See also

NLSE

A model that implements the 3rd-order Kerr and Raman effects.

UPE

A model that implements both 2nd- and 3rd-order nonlinearities.

Methods#

estimate_step_size([local_error, dz, n, ...])

Estimate the step size that yields the target local error.

simulate(z_grid[, dz, local_error, ...])

Simulate propagation of the input pulse through the optical mode.

propagate(a_v, z, z_stop, dz, local_error[, ...])

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

step(a_v, z, z_next[, k5_v, cont])

Advance the given pulse spectrum from z to z_next.

linear_operator(dz)

The action of the linear operator integrated over the given step size.

nonlinear_operator(a_v)

The action of the nonlinear operator on the given pulse spectrum.

update_linearity([force_update])

Update all z-dependent linear parameters.

update_nonlinearity([force_update])

Update all z-dependent nonlinear parameters.

update_poling([force_update])

Update the poled sign of the 2nd-order nonlinearity.