removed useless parameters, removed some defaults
This commit is contained in:
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "scgenerator"
|
name = "scgenerator"
|
||||||
version = "0.3.21"
|
version = "0.3.22"
|
||||||
description = "Simulate nonlinear pulse propagation in optical fibers"
|
description = "Simulate nonlinear pulse propagation in optical fibers"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
authors = [{ name = "Benoit Sierro", email = "benoit.sierro@iap.unibe.ch" }]
|
authors = [{ name = "Benoit Sierro", email = "benoit.sierro@iap.unibe.ch" }]
|
||||||
|
|||||||
@@ -306,7 +306,7 @@ class Parameters:
|
|||||||
frozen: bool = field(init=False, default=False, repr=False)
|
frozen: bool = field(init=False, default=False, repr=False)
|
||||||
|
|
||||||
# root
|
# root
|
||||||
name: str = Parameter(string, default="no name")
|
name: str = Parameter(string)
|
||||||
|
|
||||||
# fiber
|
# fiber
|
||||||
input_transmission: float = Parameter(in_range_incl(0, 1), default=1.0)
|
input_transmission: float = Parameter(in_range_incl(0, 1), default=1.0)
|
||||||
@@ -322,8 +322,8 @@ class Parameters:
|
|||||||
pcf_pitch: float = Parameter(in_range_excl(0, 1e-3), unit="m")
|
pcf_pitch: float = Parameter(in_range_excl(0, 1e-3), unit="m")
|
||||||
pcf_pitch_ratio: float = Parameter(in_range_excl(0, 1))
|
pcf_pitch_ratio: float = Parameter(in_range_excl(0, 1))
|
||||||
core_radius: float = Parameter(in_range_excl(0, 1e-3), unit="m")
|
core_radius: float = Parameter(in_range_excl(0, 1e-3), unit="m")
|
||||||
he_mode: tuple[int, int] = Parameter(int_pair, default=(1, 1))
|
he_mode: tuple[int, int] = Parameter(int_pair)
|
||||||
fit_parameters: tuple[int, int] = Parameter(float_pair, default=(0.08, 200e-9))
|
fit_parameters: tuple[int, int] = Parameter(float_pair)
|
||||||
beta2_coefficients: Iterable[float] = Parameter(num_list)
|
beta2_coefficients: Iterable[float] = Parameter(num_list)
|
||||||
dispersion_file: DataFile = Parameter(DataFile.validate)
|
dispersion_file: DataFile = Parameter(DataFile.validate)
|
||||||
model: str = Parameter(
|
model: str = Parameter(
|
||||||
@@ -338,31 +338,30 @@ class Parameters:
|
|||||||
capillary_resonance_strengths: Iterable[float] = Parameter(
|
capillary_resonance_strengths: Iterable[float] = Parameter(
|
||||||
validator_list(type_checker(int, float, np.ndarray))
|
validator_list(type_checker(int, float, np.ndarray))
|
||||||
)
|
)
|
||||||
capillary_resonance_max_order: int = Parameter(non_negative(*integer), default=0)
|
capillary_resonance_max_order: int = Parameter(non_negative(*integer))
|
||||||
capillary_nested: int = Parameter(non_negative(*integer), default=0)
|
capillary_nested: int = Parameter(non_negative(*integer))
|
||||||
|
|
||||||
# gas
|
# gas
|
||||||
gas_name: str = Parameter(low_string, default="vacuum")
|
gas_name: str = Parameter(low_string)
|
||||||
pressure: float = Parameter(non_negative(*number), unit="bar")
|
pressure: float = Parameter(non_negative(*number), unit="bar")
|
||||||
pressure_in: float = Parameter(non_negative(*number), unit="bar")
|
pressure_in: float = Parameter(non_negative(*number), unit="bar")
|
||||||
pressure_out: float = Parameter(non_negative(*number), unit="bar")
|
pressure_out: float = Parameter(non_negative(*number), unit="bar")
|
||||||
temperature: float = Parameter(positive(*number), unit="K", default=300)
|
temperature: float = Parameter(positive(*number), unit="K")
|
||||||
plasma_density: float = Parameter(non_negative(*number), default=0)
|
plasma_density: float = Parameter(non_negative(*number))
|
||||||
|
|
||||||
# pulse
|
# pulse
|
||||||
field_file: DataFile = Parameter(DataFile.validate)
|
field_file: DataFile = Parameter(DataFile.validate)
|
||||||
input_time: np.ndarray = Parameter(type_checker(np.ndarray))
|
input_time: np.ndarray = Parameter(type_checker(np.ndarray))
|
||||||
input_field: np.ndarray = Parameter(type_checker(np.ndarray))
|
input_field: np.ndarray = Parameter(type_checker(np.ndarray))
|
||||||
repetition_rate: float = Parameter(non_negative(*number), unit="Hz", default=40e6)
|
repetition_rate: float = Parameter(non_negative(*number), unit="Hz")
|
||||||
peak_power: float = Parameter(positive(*number), unit="W")
|
peak_power: float = Parameter(positive(*number), unit="W")
|
||||||
mean_power: float = Parameter(positive(*number), unit="W")
|
mean_power: float = Parameter(positive(*number), unit="W")
|
||||||
energy: float = Parameter(positive(*number), unit="J")
|
energy: float = Parameter(positive(*number), unit="J")
|
||||||
soliton_num: float = Parameter(non_negative(*number))
|
soliton_num: float = Parameter(non_negative(*number))
|
||||||
additional_noise_factor: float = Parameter(positive(*number), default=1)
|
shape: str = Parameter(literal("gaussian", "sech"))
|
||||||
shape: str = Parameter(literal("gaussian", "sech"), default="gaussian")
|
|
||||||
wavelength: float = Parameter(in_range_incl(100e-9, 10000e-9), unit="m")
|
wavelength: float = Parameter(in_range_incl(100e-9, 10000e-9), unit="m")
|
||||||
intensity_noise: float = Parameter(in_range_incl(0, 1), unit="%", default=0)
|
intensity_noise: float = Parameter(in_range_incl(0, 1), unit="%")
|
||||||
noise_correlation: float = Parameter(in_range_incl(-10, 10), default=0)
|
noise_correlation: float = Parameter(in_range_incl(-10, 10))
|
||||||
width: float = Parameter(in_range_excl(0, 1e-9), unit="s")
|
width: float = Parameter(in_range_excl(0, 1e-9), unit="s")
|
||||||
t0: float = Parameter(in_range_excl(0, 1e-9), unit="s")
|
t0: float = Parameter(in_range_excl(0, 1e-9), unit="s")
|
||||||
delay: float = Parameter(type_checker(*number), unit="s")
|
delay: float = Parameter(type_checker(*number), unit="s")
|
||||||
@@ -394,10 +393,6 @@ class Parameters:
|
|||||||
interpolation_degree: int = Parameter(
|
interpolation_degree: int = Parameter(
|
||||||
validator_and(type_checker(*integer), in_range_incl(2, 18))
|
validator_and(type_checker(*integer), in_range_incl(2, 18))
|
||||||
)
|
)
|
||||||
prev_sim_dir: str = Parameter(string)
|
|
||||||
recovery_last_stored: int = Parameter(non_negative(*integer), default=0)
|
|
||||||
parallel: bool = Parameter(boolean, default=True)
|
|
||||||
worker_num: int = Parameter(positive(*integer))
|
|
||||||
|
|
||||||
# computed
|
# computed
|
||||||
linear_operator: VariableQuantity = Parameter(is_function, can_pickle=False)
|
linear_operator: VariableQuantity = Parameter(is_function, can_pickle=False)
|
||||||
|
|||||||
@@ -395,9 +395,6 @@ def adjust_custom_field(
|
|||||||
input_time: np.ndarray,
|
input_time: np.ndarray,
|
||||||
input_field: np.ndarray,
|
input_field: np.ndarray,
|
||||||
t: np.ndarray,
|
t: np.ndarray,
|
||||||
delay: float | None = None,
|
|
||||||
intensity_noise: float | None = None,
|
|
||||||
noise_correlation: float | None = None,
|
|
||||||
energy: float | None = None,
|
energy: float | None = None,
|
||||||
peak_power: float = None,
|
peak_power: float = None,
|
||||||
) -> np.ndarray:
|
) -> np.ndarray:
|
||||||
@@ -440,9 +437,7 @@ def adjust_custom_field(
|
|||||||
else:
|
else:
|
||||||
raise ValueError("Not enough parameters specified to load custom field correctly")
|
raise ValueError("Not enough parameters specified to load custom field correctly")
|
||||||
|
|
||||||
field_0 = field_0 * modify_field_ratio(
|
field_0 = field_0 * modify_field_ratio(t, field_0, peak_power, energy)
|
||||||
t, field_0, peak_power, energy, intensity_noise, noise_correlation
|
|
||||||
)
|
|
||||||
width, peak_power, energy = measure_field(t, field_0)
|
width, peak_power, energy = measure_field(t, field_0)
|
||||||
return field_0, peak_power, energy, width
|
return field_0, peak_power, energy, width
|
||||||
|
|
||||||
@@ -563,16 +558,11 @@ def finalize_pulse(
|
|||||||
w: np.ndarray,
|
w: np.ndarray,
|
||||||
dt: float,
|
dt: float,
|
||||||
input_transmission: float,
|
input_transmission: float,
|
||||||
intensity_noise: float | None,
|
|
||||||
) -> np.ndarray:
|
) -> np.ndarray:
|
||||||
if quantum_noise:
|
if quantum_noise:
|
||||||
pre_field_0 = pre_field_0 + shot_noise(w, dt)
|
pre_field_0 = pre_field_0 + shot_noise(w, dt)
|
||||||
|
|
||||||
ratio = 1
|
return np.sqrt(input_transmission) * pre_field_0
|
||||||
if intensity_noise is not None:
|
|
||||||
d_int, _ = technical_noise(intensity_noise, 0)
|
|
||||||
ratio *= np.sqrt(d_int)
|
|
||||||
return np.sqrt(input_transmission) * pre_field_0 * ratio
|
|
||||||
|
|
||||||
|
|
||||||
def A_to_C(A: np.ndarray, effective_area_arr: np.ndarray) -> np.ndarray:
|
def A_to_C(A: np.ndarray, effective_area_arr: np.ndarray) -> np.ndarray:
|
||||||
|
|||||||
Reference in New Issue
Block a user