w_eff marcuse equation, interp_range changes
This commit is contained in:
@@ -291,6 +291,27 @@ def A_eff_hasan(core_radius, capillary_num, capillary_spacing):
|
|||||||
return M_f * core_radius ** 2 * np.exp((capillary_spacing / 22e-6) ** 2.5)
|
return M_f * core_radius ** 2 * np.exp((capillary_spacing / 22e-6) ** 2.5)
|
||||||
|
|
||||||
|
|
||||||
|
def A_eff_marcuse(wl: T, core_radius: float, numerical_aperture: float) -> T:
|
||||||
|
"""According to Marcuse1978
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
wl : T
|
||||||
|
wavelength
|
||||||
|
core_radius : float
|
||||||
|
in m
|
||||||
|
numerical_aperture : float
|
||||||
|
NA
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
T
|
||||||
|
A_eff as function of wl
|
||||||
|
"""
|
||||||
|
V = 2 * pi * core_radius * numerical_aperture / wl
|
||||||
|
w_eff = core_radius * (0.65 + 1.619 / V ** 1.5 + 2.879 / V ** 6)
|
||||||
|
|
||||||
|
|
||||||
def HCPCF_find_with_given_ZDW(
|
def HCPCF_find_with_given_ZDW(
|
||||||
variable: Literal["pressure", "temperature"],
|
variable: Literal["pressure", "temperature"],
|
||||||
target: float,
|
target: float,
|
||||||
@@ -779,7 +800,7 @@ def compute_dispersion(params: BareParams) -> tuple[np.ndarray, np.ndarray, tupl
|
|||||||
beta2 += plasma_dispersion(lambda_, params.plasma_density)
|
beta2 += plasma_dispersion(lambda_, params.plasma_density)
|
||||||
|
|
||||||
beta2_coef = dispersion_coefficients(
|
beta2_coef = dispersion_coefficients(
|
||||||
lambda_, beta2, params.w0, params.interp_range, params.interpolation_degree
|
lambda_, beta2, params.w0, interp_range, params.interpolation_degree
|
||||||
)
|
)
|
||||||
|
|
||||||
if gamma is None:
|
if gamma is None:
|
||||||
@@ -824,9 +845,10 @@ def dispersion_coefficients(
|
|||||||
# 2 discrete gradients are computed before getting to
|
# 2 discrete gradients are computed before getting to
|
||||||
# beta2, so we need to make sure coefficients are not affected
|
# beta2, so we need to make sure coefficients are not affected
|
||||||
# by edge effects
|
# by edge effects
|
||||||
r = (lambda_ > max(lambda_[2], interp_range[0])) & (
|
# r = (lambda_ >= max(lambda_[2], interp_range[0])) & (
|
||||||
lambda_ < min(lambda_[-2], interp_range[1])
|
# lambda_ <= min(lambda_[-2], interp_range[1])
|
||||||
)
|
# )
|
||||||
|
r = slice(None, None)
|
||||||
logger.debug(
|
logger.debug(
|
||||||
f"interpolating dispersion between {lambda_[r].min()*1e9:.1f}nm and {lambda_[r].max()*1e9:.1f}nm"
|
f"interpolating dispersion between {lambda_[r].min()*1e9:.1f}nm and {lambda_[r].max()*1e9:.1f}nm"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -104,22 +104,22 @@ class RK4IP:
|
|||||||
if "raman" in self.behaviors and self.alpha is not None:
|
if "raman" in self.behaviors and self.alpha is not None:
|
||||||
self.logger.debug("Conserved quantity : photon number with loss")
|
self.logger.debug("Conserved quantity : photon number with loss")
|
||||||
self.conserved_quantity_func = lambda spectrum, h: pulse.photon_number_with_loss(
|
self.conserved_quantity_func = lambda spectrum, h: pulse.photon_number_with_loss(
|
||||||
1 * spectrum, self.w, self.dw, self.gamma, self.alpha, h
|
spectrum, self.w, self.dw, self.gamma, self.alpha, h
|
||||||
)
|
)
|
||||||
elif "raman" in self.behaviors:
|
elif "raman" in self.behaviors:
|
||||||
self.logger.debug("Conserved quantity : photon number without loss")
|
self.logger.debug("Conserved quantity : photon number without loss")
|
||||||
self.conserved_quantity_func = lambda spectrum, h: pulse.photon_number(
|
self.conserved_quantity_func = lambda spectrum, h: pulse.photon_number(
|
||||||
1 * spectrum, self.w, self.dw, self.gamma
|
spectrum, self.w, self.dw, self.gamma
|
||||||
)
|
)
|
||||||
elif self.alpha is not None:
|
elif self.alpha is not None:
|
||||||
self.logger.debug("Conserved quantity : energy with loss")
|
self.logger.debug("Conserved quantity : energy with loss")
|
||||||
self.conserved_quantity_func = lambda spectrum, h: pulse.pulse_energy_with_loss(
|
self.conserved_quantity_func = lambda spectrum, h: pulse.pulse_energy_with_loss(
|
||||||
1 * spectrum, self.dw, self.alpha, h
|
spectrum, self.dw, self.alpha, h
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
self.logger.debug("Conserved quantity : energy without loss")
|
self.logger.debug("Conserved quantity : energy without loss")
|
||||||
self.conserved_quantity_func = lambda spectrum, h: pulse.pulse_energy(
|
self.conserved_quantity_func = lambda spectrum, h: pulse.pulse_energy(
|
||||||
1 * spectrum, self.dw
|
spectrum, self.dw
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
self.conserved_quantity_func = lambda spectrum, h: 0.0
|
self.conserved_quantity_func = lambda spectrum, h: 0.0
|
||||||
|
|||||||
Reference in New Issue
Block a user