config sequence as parameters
This commit is contained in:
@@ -657,7 +657,12 @@ def PCF_dispersion(lambda_, pitch, ratio_d, w0=None, n2=None, A_eff=None):
|
||||
|
||||
|
||||
def compute_loss(params: BareParams) -> Optional[np.ndarray]:
|
||||
if params.loss == "capillary":
|
||||
if params.loss_file is not None:
|
||||
loss_data = np.load(params.loss_file)
|
||||
wl = loss_data["wavelength"]
|
||||
loss = loss_data["loss"]
|
||||
return interp1d(wl, loss, fill_value=0, bounds_error=False)(params.l)
|
||||
elif params.loss == "capillary":
|
||||
mask = params.l < params.upper_wavelength_interp_limit
|
||||
alpha = capillary_loss(params.l[mask], params.he_mode, params.core_radius)
|
||||
out = np.zeros_like(params.l)
|
||||
|
||||
@@ -3,7 +3,7 @@ import os
|
||||
import random
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from typing import Dict, List, Tuple, Type
|
||||
from typing import Dict, List, Tuple, Type, Union
|
||||
|
||||
import numpy as np
|
||||
|
||||
@@ -679,6 +679,15 @@ def run_simulation_sequence(
|
||||
method=None,
|
||||
prev_sim_dir: os.PathLike = None,
|
||||
):
|
||||
config_files = list(config_files)
|
||||
if len(config_files) == 1:
|
||||
while True:
|
||||
conf = io.load_toml(config_files[0])
|
||||
if (prev := conf.get("previous_config_file")) is not None:
|
||||
config_files.insert(0, prev)
|
||||
else:
|
||||
break
|
||||
|
||||
prev = prev_sim_dir
|
||||
for config_file in config_files:
|
||||
sim = new_simulation(config_file, prev, method)
|
||||
@@ -694,12 +703,14 @@ def run_simulation_sequence(
|
||||
|
||||
|
||||
def new_simulation(
|
||||
config_file: os.PathLike,
|
||||
config: Union[dict, os.PathLike],
|
||||
prev_sim_dir=None,
|
||||
method: Type[Simulations] = None,
|
||||
) -> Simulations:
|
||||
|
||||
config_dict = io.load_toml(config_file)
|
||||
if isinstance(config, dict):
|
||||
config_dict = config
|
||||
else:
|
||||
config_dict = io.load_toml(config)
|
||||
logger = get_logger(__name__)
|
||||
|
||||
if prev_sim_dir is not None:
|
||||
|
||||
@@ -455,7 +455,7 @@ def plot_results_2D(
|
||||
plt_range: Union[units.PlotRange, tuple],
|
||||
params: BareParams,
|
||||
log: Union[int, float, bool, str] = "1D",
|
||||
skip: int = 16,
|
||||
skip: int = 1,
|
||||
vmin: float = None,
|
||||
vmax: float = None,
|
||||
transpose: bool = False,
|
||||
|
||||
@@ -315,12 +315,14 @@ class BareParams:
|
||||
# root
|
||||
name: str = Parameter(string)
|
||||
prev_data_dir: str = Parameter(string)
|
||||
previous_config_file:str = Parameter(string)
|
||||
|
||||
# # fiber
|
||||
input_transmission: float = Parameter(in_range_incl(0, 1))
|
||||
gamma: float = Parameter(non_negative(float, int))
|
||||
n2: float = Parameter(non_negative(float, int))
|
||||
loss: str = Parameter(literal("capillary"))
|
||||
loss_file: str = Parameter(string)
|
||||
effective_mode_diameter: float = Parameter(positive(float, int))
|
||||
A_eff: float = Parameter(non_negative(float, int))
|
||||
pitch: float = Parameter(in_range_excl(0, 1e-3))
|
||||
@@ -371,7 +373,7 @@ class BareParams:
|
||||
z_num: int = Parameter(positive(int))
|
||||
time_window: float = Parameter(positive(float, int))
|
||||
dt: float = Parameter(in_range_excl(0, 5e-15))
|
||||
tolerated_error: float = Parameter(in_range_excl(1e-15, 1e-5))
|
||||
tolerated_error: float = Parameter(in_range_excl(1e-15, 1e-3))
|
||||
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))
|
||||
|
||||
Reference in New Issue
Block a user