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]:
|
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
|
mask = params.l < params.upper_wavelength_interp_limit
|
||||||
alpha = capillary_loss(params.l[mask], params.he_mode, params.core_radius)
|
alpha = capillary_loss(params.l[mask], params.he_mode, params.core_radius)
|
||||||
out = np.zeros_like(params.l)
|
out = np.zeros_like(params.l)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import os
|
|||||||
import random
|
import random
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Dict, List, Tuple, Type
|
from typing import Dict, List, Tuple, Type, Union
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
@@ -679,6 +679,15 @@ def run_simulation_sequence(
|
|||||||
method=None,
|
method=None,
|
||||||
prev_sim_dir: os.PathLike = 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
|
prev = prev_sim_dir
|
||||||
for config_file in config_files:
|
for config_file in config_files:
|
||||||
sim = new_simulation(config_file, prev, method)
|
sim = new_simulation(config_file, prev, method)
|
||||||
@@ -694,12 +703,14 @@ def run_simulation_sequence(
|
|||||||
|
|
||||||
|
|
||||||
def new_simulation(
|
def new_simulation(
|
||||||
config_file: os.PathLike,
|
config: Union[dict, os.PathLike],
|
||||||
prev_sim_dir=None,
|
prev_sim_dir=None,
|
||||||
method: Type[Simulations] = None,
|
method: Type[Simulations] = None,
|
||||||
) -> Simulations:
|
) -> Simulations:
|
||||||
|
if isinstance(config, dict):
|
||||||
config_dict = io.load_toml(config_file)
|
config_dict = config
|
||||||
|
else:
|
||||||
|
config_dict = io.load_toml(config)
|
||||||
logger = get_logger(__name__)
|
logger = get_logger(__name__)
|
||||||
|
|
||||||
if prev_sim_dir is not None:
|
if prev_sim_dir is not None:
|
||||||
|
|||||||
@@ -455,7 +455,7 @@ def plot_results_2D(
|
|||||||
plt_range: Union[units.PlotRange, tuple],
|
plt_range: Union[units.PlotRange, tuple],
|
||||||
params: BareParams,
|
params: BareParams,
|
||||||
log: Union[int, float, bool, str] = "1D",
|
log: Union[int, float, bool, str] = "1D",
|
||||||
skip: int = 16,
|
skip: int = 1,
|
||||||
vmin: float = None,
|
vmin: float = None,
|
||||||
vmax: float = None,
|
vmax: float = None,
|
||||||
transpose: bool = False,
|
transpose: bool = False,
|
||||||
|
|||||||
@@ -315,12 +315,14 @@ class BareParams:
|
|||||||
# root
|
# root
|
||||||
name: str = Parameter(string)
|
name: str = Parameter(string)
|
||||||
prev_data_dir: str = Parameter(string)
|
prev_data_dir: str = Parameter(string)
|
||||||
|
previous_config_file:str = Parameter(string)
|
||||||
|
|
||||||
# # fiber
|
# # fiber
|
||||||
input_transmission: float = Parameter(in_range_incl(0, 1))
|
input_transmission: float = Parameter(in_range_incl(0, 1))
|
||||||
gamma: float = Parameter(non_negative(float, int))
|
gamma: float = Parameter(non_negative(float, int))
|
||||||
n2: float = Parameter(non_negative(float, int))
|
n2: float = Parameter(non_negative(float, int))
|
||||||
loss: str = Parameter(literal("capillary"))
|
loss: str = Parameter(literal("capillary"))
|
||||||
|
loss_file: str = Parameter(string)
|
||||||
effective_mode_diameter: float = Parameter(positive(float, int))
|
effective_mode_diameter: float = Parameter(positive(float, int))
|
||||||
A_eff: float = Parameter(non_negative(float, int))
|
A_eff: float = Parameter(non_negative(float, int))
|
||||||
pitch: float = Parameter(in_range_excl(0, 1e-3))
|
pitch: float = Parameter(in_range_excl(0, 1e-3))
|
||||||
@@ -371,7 +373,7 @@ class BareParams:
|
|||||||
z_num: int = Parameter(positive(int))
|
z_num: int = Parameter(positive(int))
|
||||||
time_window: float = Parameter(positive(float, int))
|
time_window: float = Parameter(positive(float, int))
|
||||||
dt: float = Parameter(in_range_excl(0, 5e-15))
|
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))
|
step_size: float = Parameter(positive(float, int))
|
||||||
lower_wavelength_interp_limit: float = Parameter(in_range_incl(100e-9, 3000e-9))
|
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))
|
upper_wavelength_interp_limit: float = Parameter(in_range_incl(200e-9, 5000e-9))
|
||||||
|
|||||||
Reference in New Issue
Block a user