From 472cd37814d73e2adf8fbfb8de6cae27624474d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Sierro?= Date: Thu, 11 Nov 2021 13:07:06 +0100 Subject: [PATCH] new Poly op that accepts coefficients directly --- src/scgenerator/operators.py | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/scgenerator/operators.py b/src/scgenerator/operators.py index 9f40022..86a4217 100644 --- a/src/scgenerator/operators.py +++ b/src/scgenerator/operators.py @@ -13,7 +13,6 @@ import numpy as np from scipy.interpolate import interp1d from . import math -from .errors import OperatorError from .logger import get_logger from .physics import fiber, materials, pulse, units from .utils import load_material_dico @@ -415,21 +414,13 @@ class ConstantPolyDispersion(AbstractDispersion): def __init__( self, - w_for_disp: np.ndarray, - beta2_arr: np.ndarray, - w0: float, + beta2_coefficients: np.ndarray, w_c: np.ndarray, - interpolation_degree: int, ): - if interpolation_degree < 1: - raise OperatorError( - f"interpolation degree of degree {interpolation_degree} incompatible" - ) - coefs = fiber.dispersion_coefficients(w_for_disp, beta2_arr, w0, interpolation_degree) w_power_fact = np.array( - [math.power_fact(w_c, k) for k in range(2, interpolation_degree + 3)] + [math.power_fact(w_c, k) for k in range(2, len(beta2_coefficients) + 2)] ) - self.disp_arr = fiber.fast_poly_dispersion_op(w_c, coefs, w_power_fact) + self.disp_arr = fiber.fast_poly_dispersion_op(w_c, beta2_coefficients, w_power_fact) def __call__(self, state: CurrentState = None) -> np.ndarray: return self.disp_arr