working gas simulations

This commit is contained in:
Benoît Sierro
2021-10-11 09:16:31 +02:00
parent fb880077ed
commit b3dbec1553
5 changed files with 22 additions and 4 deletions

View File

@@ -12,7 +12,7 @@ from .plotting import (
transform_mean_values, transform_mean_values,
get_extent, get_extent,
) )
from .spectra import Pulse, Spectrum, SimulationSeries from .spectra import Spectrum, SimulationSeries
from ._utils import Paths, open_config, parameter from ._utils import Paths, open_config, parameter
from ._utils.parameter import Configuration, Parameters from ._utils.parameter import Configuration, Parameters
from ._utils.utils import PlotRange from ._utils.utils import PlotRange

View File

@@ -1094,6 +1094,7 @@ default_rules: list[Rule] = [
priorities=[2, 2, 2], priorities=[2, 2, 2],
), ),
Rule("hr_w", fiber.delayed_raman_w), 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_hasan, conditions=dict(model="hasan")),
Rule("n_eff", fiber.n_eff_marcatili, conditions=dict(model="marcatili")), Rule("n_eff", fiber.n_eff_marcatili, conditions=dict(model="marcatili")),
Rule("n_eff", fiber.n_eff_marcatili_adjusted, conditions=dict(model="marcatili_adjusted")), 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_from_diam),
Rule("A_eff", fiber.A_eff_hasan, conditions=dict(model="hasan")), 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_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.A_eff_from_V, ["core_radius", "V_eff_arr"]),
Rule("A_eff_arr", fiber.load_custom_A_eff), Rule("A_eff_arr", fiber.load_custom_A_eff),
Rule("A_eff_arr", fiber.constant_A_eff_arr, priorities=-1), Rule("A_eff_arr", fiber.constant_A_eff_arr, priorities=-1),

View File

@@ -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) 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 @np_cache
def n_eff_hasan( def n_eff_hasan(
wl_for_disp: np.ndarray, wl_for_disp: np.ndarray,

View File

@@ -10,9 +10,9 @@ from .units import NA, c, kB, me, e, hbar
def n_gas_2( 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: if ideal_gas:
n_gas_2 = sellmeier(wl_for_disp, material_dico, pressure, temperature) + 1 n_gas_2 = sellmeier(wl_for_disp, material_dico, pressure, temperature) + 1

View File

@@ -11,7 +11,7 @@ from .. import env, math
from ..const import PARAM_FN, PARAM_SEPARATOR from ..const import PARAM_FN, PARAM_SEPARATOR
from ..physics import fiber, units from ..physics import fiber, units
from ..plotting import plot_setup 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 import auto_crop, open_config, save_toml, translate_parameters
from .._utils.parameter import ( from .._utils.parameter import (
Configuration, Configuration,