better wavelength_window rules

This commit is contained in:
Benoît Sierro
2023-10-03 16:12:07 +02:00
parent 821094d22a
commit a903bfcb5e
3 changed files with 6 additions and 3 deletions

View File

@@ -465,7 +465,7 @@ default_rules: list[Rule] = [
Rule("w_num", len, ["w"]), Rule("w_num", len, ["w"]),
Rule("dw", lambda w: w[1] - w[0]), Rule("dw", lambda w: w[1] - w[0]),
Rule(["fft", "ifft"], utils.fft_functions, priorities=1), Rule(["fft", "ifft"], utils.fft_functions, priorities=1),
Rule("wavelength_window", lambda dt: (max(100e-9, 2 * units.c * dt), 8e-6)), Rule("wavelength_window", lambda dt, wavelength: (math.min_wl_from_dt(dt, wavelength), 8e-6)),
Rule("wavelength_window", fiber.valid_wavelength_window), Rule("wavelength_window", fiber.valid_wavelength_window),
Rule("dispersion_ind", fiber.dispersion_indices), Rule("dispersion_ind", fiber.dispersion_indices),
# Pulse # Pulse

View File

@@ -271,7 +271,11 @@ def iwspace(w: np.ndarray, retstep: bool = False):
def dt_from_min_wl(wl_min: float, wavelength: float) -> float: def dt_from_min_wl(wl_min: float, wavelength: float) -> float:
return 0.5 * 1 / c * 1 / (1 / wl_min - 1 / wavelength) return 0.5 / c / (1 / wl_min - 1 / wavelength)
def min_wl_from_dt(dt: float, wavelength: float) -> float:
return wavelength / (1 + wavelength / (2 * c * dt))
def _dt_from_wl_window(wavelength_window: tuple[float, float], wavelength: float) -> float: def _dt_from_wl_window(wavelength_window: tuple[float, float], wavelength: float) -> float:

View File

@@ -20,7 +20,6 @@ PARAMS = dict(
# fiber # fiber
dispersion_file="./PM2000D_2 extrapolated 4 0.npz", dispersion_file="./PM2000D_2 extrapolated 4 0.npz",
effective_area_file="./PM2000D_A_eff_marcuse.npz", effective_area_file="./PM2000D_A_eff_marcuse.npz",
wavelength_window=(400e-9, 4000e-9),
n2=4.5e-20, n2=4.5e-20,
# simulation # simulation
raman_type="measured", raman_type="measured",