NLSE.solvers.cnlse

Classes

CNLSE

A class to solve the coupled NLSE.

Module Contents

class NLSE.solvers.cnlse.CNLSE(alpha: float, power: float, window: float, n2: float, n12: float, V: numpy.ndarray | None, L: float, NX: int = 1024, NY: int = 1024, Isat: float = np.inf, nl_length: float = 0, wvl: float = 7.8e-07, omega: float | None = None, backend: str = __BACKEND__)[source]

Bases: NLSE.solvers.nlse.NLSE

A class to solve the coupled NLSE.

I_sat2
n12
n22
omega = None
alpha2
k2
power2
propagator1 = None
propagator2 = None
split_step(A: numpy.ndarray, A_sq: numpy.ndarray, V: numpy.ndarray | None, propagator: numpy.ndarray, plans: list, delta_z: float, splitting: str = 'lie') → numpy.ndarray[source]

Split step function for one propagation step.

Parameters:
  • A (np.ndarray) – Fields to propagate of shape (2, NY, NX).

  • A_sq (np.ndarray) – Intensity of the fields.

  • V (np.ndarray) – Potential field (can be None).

  • propagator (np.ndarray) – Propagator matrix for both fields [propagator1, propagator2].

  • plans (list) – List of FFT plan objects: one plan used in both directions on the GPU backends, and the axes to transform over on CPU.

  • delta_z (float) – Step to take. Must match the propagator, which was built from it.

  • splitting (str, optional) – Single or double application of the nonlinear propagation step. Defaults to “lie”.

Returns:

The propagated field.

Return type:

np.ndarray

plot_field(A_plot: numpy.ndarray, z: float) → None[source]

Plot the field.

Parameters:
  • A_plot (np.ndarray) – The field to plot.

  • z (float) – Propagation distance in m.