better wavelength_window rules
This commit is contained in:
@@ -465,7 +465,7 @@ default_rules: list[Rule] = [
|
||||
Rule("w_num", len, ["w"]),
|
||||
Rule("dw", lambda w: w[1] - w[0]),
|
||||
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("dispersion_ind", fiber.dispersion_indices),
|
||||
# Pulse
|
||||
|
||||
@@ -271,7 +271,11 @@ def iwspace(w: np.ndarray, retstep: bool = False):
|
||||
|
||||
|
||||
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:
|
||||
|
||||
@@ -20,7 +20,6 @@ PARAMS = dict(
|
||||
# fiber
|
||||
dispersion_file="./PM2000D_2 extrapolated 4 0.npz",
|
||||
effective_area_file="./PM2000D_A_eff_marcuse.npz",
|
||||
wavelength_window=(400e-9, 4000e-9),
|
||||
n2=4.5e-20,
|
||||
# simulation
|
||||
raman_type="measured",
|
||||
|
||||
Reference in New Issue
Block a user