This commit is contained in:
Benoît Sierro
2021-08-20 14:46:59 +02:00
parent 2758e4ade8
commit 7f21f18786
7 changed files with 19 additions and 17 deletions

View File

@@ -249,5 +249,5 @@ upper_wavelength_interp_limit: float
sets the lowest end of this range. If the set value is higher than the higher end of the
wavelength window, it is lowered down to that point. default : 1900e-9
interp_degree: int
interpolation_degree: int
max degree of the Taylor polynomial fitting the dispersion data

View File

@@ -26,7 +26,7 @@ default_parameters = dict(
tolerated_error=1e-11,
lower_wavelength_interp_limit=100e-9,
upper_wavelength_interp_limit=2000e-9,
interp_degree=8,
interpolation_degree=8,
ideal_gas=False,
recovery_last_stored=0,
)

View File

@@ -241,7 +241,7 @@ class Config(BareConfig):
"repeat",
"lower_wavelength_interp_limit",
"upper_wavelength_interp_limit",
"interp_degree",
"interpolation_degree",
"ideal_gas",
"recovery_last_stored",
]:
@@ -701,7 +701,7 @@ def build_sim_grid_in_place(params: BareParams):
params.length,
params.z_num,
params.wavelength,
params.interp_degree,
params.interpolation_degree,
params.time_window,
params.t_num,
params.dt,

View File

@@ -674,9 +674,7 @@ def compute_custom_A_eff(params: BareParams) -> np.ndarray:
data = np.load(params.A_eff_file)
A_eff = data["A_eff"]
wl = data["wavelength"]
return interp1d(
wl, A_eff, fill_value=(A_eff[wl.argmin()], A_eff[wl.argmax()]), bounds_error=False
)(params.l)
return interp1d(wl, A_eff, fill_value=1, bounds_error=False)(params.l)
def compute_loss(params: BareParams) -> Optional[np.ndarray]:
@@ -750,7 +748,7 @@ def compute_dispersion(params: BareParams) -> tuple[np.ndarray, np.ndarray, tupl
params.w0,
params.interp_range,
material_dico,
params.interp_degree,
params.interpolation_degree,
)
else:
beta2 = HCPCF_dispersion(
@@ -781,7 +779,7 @@ def compute_dispersion(params: BareParams) -> tuple[np.ndarray, np.ndarray, tupl
beta2 += plasma_dispersion(lambda_, params.plasma_density)
beta2_coef = dispersion_coefficients(
lambda_, beta2, params.w0, params.interp_range, params.interp_degree
lambda_, beta2, params.w0, params.interp_range, params.interpolation_degree
)
if gamma is None:

View File

@@ -13,7 +13,6 @@ from ..errors import IncompleteDataFolderError
from ..logger import get_logger
from . import pulse
from .fiber import create_non_linear_op, fast_dispersion_op
from scgenerator.physics import fiber
try:
import ray
@@ -105,22 +104,22 @@ class RK4IP:
if "raman" in self.behaviors and self.alpha is not None:
self.logger.debug("Conserved quantity : photon number with loss")
self.conserved_quantity_func = lambda spectrum, h: pulse.photon_number_with_loss(
spectrum, self.w, self.dw, self.gamma, self.alpha, h
self.C_to_A_factor * spectrum, self.w, self.dw, self.gamma, self.alpha, h
)
elif "raman" in self.behaviors:
self.logger.debug("Conserved quantity : photon number without loss")
self.conserved_quantity_func = lambda spectrum, h: pulse.photon_number(
spectrum, self.w, self.dw, self.gamma
self.C_to_A_factor * spectrum, self.w, self.dw, self.gamma
)
elif self.alpha is not None:
self.logger.debug("Conserved quantity : energy with loss")
self.conserved_quantity_func = lambda spectrum, h: pulse.pulse_energy_with_loss(
spectrum, self.dw, self.alpha, h
self.C_to_A_factor * spectrum, self.dw, self.alpha, h
)
else:
self.logger.debug("Conserved quantity : energy without loss")
self.conserved_quantity_func = lambda spectrum, h: pulse.pulse_energy(
spectrum, self.dw
self.C_to_A_factor * spectrum, self.dw
)
else:
self.conserved_quantity_func = lambda spectrum, h: 0.0

View File

@@ -6,6 +6,7 @@ scgenerator module but some function may be used in any python program
import itertools
import multiprocessing
import os
import random
import re
import threading
@@ -39,6 +40,7 @@ class PBars:
) -> "PBars":
self.id = random.randint(100000, 999999)
self.width = os.get_terminal_size().columns
if isinstance(task, abc.Iterable):
self.iterator: Iterable[T_] = iter(task)
@@ -58,13 +60,14 @@ class PBars:
)
if "print" not in env.pbar_policy():
head_kwargs["file"] = worker_kwargs["file"] = StringIO()
self.width = 80
head_kwargs["desc"] = desc
self.pbars = [tqdm(total=self.num_tot, ncols=100, ascii=False, **head_kwargs)]
self.pbars = [tqdm(total=self.num_tot, ncols=self.width, ascii=False, **head_kwargs)]
for i in range(1, num_sub_bars + 1):
kwargs = {k: v for k, v in worker_kwargs.items()}
if "desc" in kwargs:
kwargs["desc"] = kwargs["desc"].format(worker_id=i)
self.append(tqdm(position=i, ncols=100, ascii=False, **kwargs))
self.append(tqdm(position=i, ncols=self.width, ascii=False, **kwargs))
self.print_path = Path(f"progress {self.pbars[0].desc} {self.id}").resolve()
self.close_ev = threading.Event()
if "file" in self.policy:

View File

@@ -282,11 +282,13 @@ valid_variable = {
"wavelength",
"intensity_noise",
"width",
"t0",
"soliton_num",
"behaviors",
"raman_type",
"tolerated_error",
"step_size",
"interpolation_degree",
"ideal_gas",
}
@@ -379,7 +381,7 @@ class BareParams:
step_size: float = Parameter(positive(float, int))
lower_wavelength_interp_limit: float = Parameter(in_range_incl(100e-9, 3000e-9))
upper_wavelength_interp_limit: float = Parameter(in_range_incl(200e-9, 5000e-9))
interp_degree: int = Parameter(positive(int))
interpolation_degree: int = Parameter(positive(int))
prev_sim_dir: str = Parameter(string)
recovery_last_stored: int = Parameter(non_negative(int))
worker_num: int = Parameter(positive(int))