NLSE.solvers.cnlse¶
Classes¶
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.NLSEA 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