From b3dbec1553c7829af9be13240af234a757a38448 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Sierro?= Date: Mon, 11 Oct 2021 09:16:31 +0200 Subject: [PATCH] working gas simulations --- src/scgenerator/__init__.py | 2 +- src/scgenerator/_utils/parameter.py | 2 ++ src/scgenerator/physics/fiber.py | 16 ++++++++++++++++ src/scgenerator/physics/materials.py | 4 ++-- src/scgenerator/scripts/__init__.py | 2 +- 5 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/scgenerator/__init__.py b/src/scgenerator/__init__.py index 650e52e..2699f07 100644 --- a/src/scgenerator/__init__.py +++ b/src/scgenerator/__init__.py @@ -12,7 +12,7 @@ from .plotting import ( transform_mean_values, get_extent, ) -from .spectra import Pulse, Spectrum, SimulationSeries +from .spectra import Spectrum, SimulationSeries from ._utils import Paths, open_config, parameter from ._utils.parameter import Configuration, Parameters from ._utils.utils import PlotRange diff --git a/src/scgenerator/_utils/parameter.py b/src/scgenerator/_utils/parameter.py index 0f463d5..43e1f56 100644 --- a/src/scgenerator/_utils/parameter.py +++ b/src/scgenerator/_utils/parameter.py @@ -1094,6 +1094,7 @@ default_rules: list[Rule] = [ priorities=[2, 2, 2], ), Rule("hr_w", fiber.delayed_raman_w), + Rule("n_gas_2", materials.n_gas_2), Rule("n_eff", fiber.n_eff_hasan, conditions=dict(model="hasan")), Rule("n_eff", fiber.n_eff_marcatili, conditions=dict(model="marcatili")), Rule("n_eff", fiber.n_eff_marcatili_adjusted, conditions=dict(model="marcatili_adjusted")), @@ -1109,6 +1110,7 @@ default_rules: list[Rule] = [ Rule("A_eff", fiber.A_eff_from_diam), Rule("A_eff", fiber.A_eff_hasan, conditions=dict(model="hasan")), Rule("A_eff", fiber.A_eff_from_gamma, priorities=-1), + Rule("A_eff", fiber.A_eff_marcatili, priorities=-2), Rule("A_eff_arr", fiber.A_eff_from_V, ["core_radius", "V_eff_arr"]), Rule("A_eff_arr", fiber.load_custom_A_eff), Rule("A_eff_arr", fiber.constant_A_eff_arr, priorities=-1), diff --git a/src/scgenerator/physics/fiber.py b/src/scgenerator/physics/fiber.py index 4a27249..d059eda 100644 --- a/src/scgenerator/physics/fiber.py +++ b/src/scgenerator/physics/fiber.py @@ -192,6 +192,22 @@ def n_eff_marcatili_adjusted(wl_for_disp, n_gas_2, core_radius, he_mode=(1, 1), return np.sqrt(n_gas_2 - (wl_for_disp * u / (pipi * corrected_radius)) ** 2) +def A_eff_marcatili(core_radius: float) -> float: + """Effective mode-field area for fundamental mode hollow capillaries + + Parameters + ---------- + core_radius : float + radius of the core + + Returns + ------- + float + effective mode field area + """ + return 1.5 * core_radius ** 2 + + @np_cache def n_eff_hasan( wl_for_disp: np.ndarray, diff --git a/src/scgenerator/physics/materials.py b/src/scgenerator/physics/materials.py index b9572e6..1adb5c4 100644 --- a/src/scgenerator/physics/materials.py +++ b/src/scgenerator/physics/materials.py @@ -10,9 +10,9 @@ from .units import NA, c, kB, me, e, hbar def n_gas_2( - wl_for_disp: np.ndarray, gas: str, pressure: float, temperature: float, ideal_gas: bool + wl_for_disp: np.ndarray, gas_name: str, pressure: float, temperature: float, ideal_gas: bool ): - material_dico = utils.load_material_dico(gas) + material_dico = _utils.load_material_dico(gas_name) if ideal_gas: n_gas_2 = sellmeier(wl_for_disp, material_dico, pressure, temperature) + 1 diff --git a/src/scgenerator/scripts/__init__.py b/src/scgenerator/scripts/__init__.py index 11c502e..ebc10c0 100644 --- a/src/scgenerator/scripts/__init__.py +++ b/src/scgenerator/scripts/__init__.py @@ -11,7 +11,7 @@ from .. import env, math from ..const import PARAM_FN, PARAM_SEPARATOR from ..physics import fiber, units from ..plotting import plot_setup -from ..spectra import Pulse, SimulationSeries +from ..spectra import SimulationSeries from .._utils import auto_crop, open_config, save_toml, translate_parameters from .._utils.parameter import ( Configuration,