docs line length fixes
This commit is contained in:
@@ -58,7 +58,8 @@ def lambda_for_full_field_dispersion(
|
|||||||
subset of l in the interpolation range with two extra values on each side
|
subset of l in the interpolation range with two extra values on each side
|
||||||
to accomodate for taking gradients
|
to accomodate for taking gradients
|
||||||
np.ndarray
|
np.ndarray
|
||||||
indices of the original l where the values are valid (i.e. without the two extra on each side)
|
indices of the original l where the values are valid
|
||||||
|
(i.e. without the two extra on each side)
|
||||||
"""
|
"""
|
||||||
su = np.where((l >= wavelength_window[0]) & (l <= wavelength_window[1]))[0]
|
su = np.where((l >= wavelength_window[0]) & (l <= wavelength_window[1]))[0]
|
||||||
if l[su].min() > 1.01 * wavelength_window[0]:
|
if l[su].min() > 1.01 * wavelength_window[0]:
|
||||||
@@ -73,7 +74,9 @@ def lambda_for_full_field_dispersion(
|
|||||||
|
|
||||||
|
|
||||||
def is_dynamic_dispersion(pressure=None):
|
def is_dynamic_dispersion(pressure=None):
|
||||||
"""tests if the parameter dictionary implies that the dispersion profile of the fiber changes with z
|
"""
|
||||||
|
tests if the parameter dictionary implies that the dispersion profile of
|
||||||
|
the fiber changes with z
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
@@ -93,8 +96,8 @@ def is_dynamic_dispersion(pressure=None):
|
|||||||
|
|
||||||
def gvd_from_n_eff(n_eff: np.ndarray, wl_for_disp: np.ndarray):
|
def gvd_from_n_eff(n_eff: np.ndarray, wl_for_disp: np.ndarray):
|
||||||
"""computes the dispersion parameter D from an effective index of refraction n_eff
|
"""computes the dispersion parameter D from an effective index of refraction n_eff
|
||||||
Since computing gradients/derivatives of discrete arrays is not well defined on the boundary, it is
|
Since computing gradients/derivatives of discrete arrays is not well defined on the boundary,
|
||||||
advised to chop off the two values on either end of the returned array
|
it is advised to chop off the two values on either end of the returned array
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
@@ -175,7 +178,9 @@ def n_eff_marcatili(wl_for_disp, n_gas_2, core_radius, he_mode=(1, 1)):
|
|||||||
|
|
||||||
|
|
||||||
def n_eff_marcatili_adjusted(wl_for_disp, n_gas_2, core_radius, he_mode=(1, 1), fit_parameters=()):
|
def n_eff_marcatili_adjusted(wl_for_disp, n_gas_2, core_radius, he_mode=(1, 1), fit_parameters=()):
|
||||||
"""computes the effective refractive index according to the Marcatili model of a capillary but adjusted at longer wavelengths
|
"""
|
||||||
|
computes the effective refractive index according to the Marcatili model of a capillary
|
||||||
|
but adjusted at longer wavelengths
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
@@ -196,7 +201,8 @@ def n_eff_marcatili_adjusted(wl_for_disp, n_gas_2, core_radius, he_mode=(1, 1),
|
|||||||
|
|
||||||
Reference
|
Reference
|
||||||
----------
|
----------
|
||||||
Köttig, F., et al. "Novel mid-infrared dispersive wave generation in gas-filled PCF by transient ionization-driven changes in dispersion." arXiv preprint arXiv:1701.04843 (2017).
|
Köttig, F., et al. "Novel mid-infrared dispersive wave generation in gas-filled PCF by
|
||||||
|
transient ionization-driven changes in dispersion." arXiv preprint arXiv:1701.04843 (2017).
|
||||||
"""
|
"""
|
||||||
u = u_nm(*he_mode)
|
u = u_nm(*he_mode)
|
||||||
|
|
||||||
@@ -293,24 +299,26 @@ def n_eff_hasan(
|
|||||||
capillary_spacing: float,
|
capillary_spacing: float,
|
||||||
capillary_resonance_strengths: list[float],
|
capillary_resonance_strengths: list[float],
|
||||||
) -> np.ndarray:
|
) -> np.ndarray:
|
||||||
"""computes the effective refractive index of the fundamental mode according to the Hasan model for a anti-resonance fiber
|
"""
|
||||||
|
computes the effective refractive index of the fundamental mode according to the Hasan
|
||||||
|
model for a anti-resonance fiber
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
wl_for_disp
|
wl_for_disp : np.ndarray, shape(n,)
|
||||||
wavelenghs array (m)
|
wavelenghs array
|
||||||
n_gas_2 : ndarray, shape (n, )
|
n_gas_2 : ndarray, shape (n, )
|
||||||
squared refractive index of the gas as a function of wl_for_disp
|
squared refractive index of the gas as a function of wl_for_disp
|
||||||
core_radius : float
|
core_radius : float
|
||||||
radius of the core (m) (from cented to edge of a capillary)
|
radius of the core (from cented to edge of a capillary)
|
||||||
capillary_num : int
|
capillary_num : int
|
||||||
number of capillaries
|
number of capillaries
|
||||||
capillary_nested : int, optional
|
capillary_nested : int, optional
|
||||||
number of levels of nested capillaries. default : 0
|
number of levels of nested capillaries. default : 0
|
||||||
capillary_thickness : float
|
capillary_thickness : float
|
||||||
thickness of the capillaries (m)
|
thickness of the capillaries
|
||||||
capillary_spacing : float
|
capillary_spacing : float
|
||||||
spacing between capillaries (m)
|
spacing between capillaries
|
||||||
capillary_resonance_strengths : list or tuple
|
capillary_resonance_strengths : list or tuple
|
||||||
strengths of the resonance lines. may be empty
|
strengths of the resonance lines. may be empty
|
||||||
|
|
||||||
@@ -470,7 +478,9 @@ def beta1(w_for_disp: np.ndarray, n_eff: np.ndarray) -> np.ndarray:
|
|||||||
|
|
||||||
|
|
||||||
def beta2(w_for_disp: np.ndarray, n_eff: np.ndarray) -> np.ndarray:
|
def beta2(w_for_disp: np.ndarray, n_eff: np.ndarray) -> np.ndarray:
|
||||||
"""computes the dispersion parameter beta2 according to the effective refractive index of the fiber and the frequency range
|
"""
|
||||||
|
computes the dispersion parameter beta2 according to the effective refractive
|
||||||
|
index of the fiber and the frequency range
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
@@ -509,8 +519,9 @@ def HCPCF_dispersion(
|
|||||||
model : string {"marcatili", "marcatili_adjusted", "hasan"}
|
model : string {"marcatili", "marcatili_adjusted", "hasan"}
|
||||||
which model of effective refractive index to use
|
which model of effective refractive index to use
|
||||||
model_params : tuple
|
model_params : tuple
|
||||||
to be cast to the function in charge of computing the effective index of the fiber. Every n_eff_* function has a signature
|
to be passed on to the function in charge of computing the effective index of the fiber.
|
||||||
n_eff_(wl_for_disp, n_gas_2, radius, *args) and model_params corresponds to args
|
Every n_eff_* function has a signature
|
||||||
|
`n_eff_(wl_for_disp, n_gas_2, radius, *args)` and model_params corresponds to args
|
||||||
temperature : float
|
temperature : float
|
||||||
Temperature of the material
|
Temperature of the material
|
||||||
pressure : float
|
pressure : float
|
||||||
@@ -566,8 +577,8 @@ def n_eff_pcf(wl_for_disp: np.ndarray, pcf_pitch: float, pcf_pitch_ratio: float)
|
|||||||
|
|
||||||
Reference
|
Reference
|
||||||
---------
|
---------
|
||||||
Formulas and values are from Saitoh K and Koshiba M, "Empirical relations for simple design of photonic crystal fibers" (2005)
|
Formulas and values are from Saitoh K and Koshiba M, "Empirical relations for
|
||||||
|
simple design of photonic crystal fibers" (2005)
|
||||||
"""
|
"""
|
||||||
# Check validity
|
# Check validity
|
||||||
if pcf_pitch_ratio < 0.2 or pcf_pitch_ratio > 0.8:
|
if pcf_pitch_ratio < 0.2 or pcf_pitch_ratio > 0.8:
|
||||||
|
|||||||
@@ -254,7 +254,8 @@ class Gas:
|
|||||||
def chi3(self, temperature: float | None = None, pressure: float | None = None) -> float:
|
def chi3(self, temperature: float | None = None, pressure: float | None = None) -> float:
|
||||||
"""nonlinear susceptibility"""
|
"""nonlinear susceptibility"""
|
||||||
|
|
||||||
# if pressure and/or temperature are specified, adjustment is made according to number density ratio
|
# if pressure and/or temperature are specified, adjustment is made
|
||||||
|
# according to number density ratio
|
||||||
if pressure is not None or temperature is not None:
|
if pressure is not None or temperature is not None:
|
||||||
N0 = self.number_density_van_der_waals()
|
N0 = self.number_density_van_der_waals()
|
||||||
N = self.number_density_van_der_waals(pressure, temperature)
|
N = self.number_density_van_der_waals(pressure, temperature)
|
||||||
|
|||||||
@@ -42,7 +42,10 @@ P0T0_to_E0_fac = dict(
|
|||||||
sech=2, # int(a * sech(x / b)^2 * dx) from -inf to inf = 2 * a * b
|
sech=2, # int(a * sech(x / b)^2 * dx) from -inf to inf = 2 * a * b
|
||||||
gaussian=np.sqrt(pi / 2), # int(a * exp(-(x/b)^2)^2 * dx) from -inf to inf = sqrt(pi/2) * a * b
|
gaussian=np.sqrt(pi / 2), # int(a * exp(-(x/b)^2)^2 * dx) from -inf to inf = sqrt(pi/2) * a * b
|
||||||
)
|
)
|
||||||
"""relates the total energy (amplitue^2) to the t0 parameter of the amplitude and the peak intensity (peak_amplitude^2)"""
|
"""
|
||||||
|
relates the total energy (amplitue^2) to the t0 parameter of the
|
||||||
|
amplitude and the peak intensity (peak_amplitude^2)
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@@ -271,8 +274,9 @@ def conform_pulse_params(
|
|||||||
indicated by the order in which the parameters are enumerated below holds,
|
indicated by the order in which the parameters are enumerated below holds,
|
||||||
meaning the superflous parameters will be overwritten.
|
meaning the superflous parameters will be overwritten.
|
||||||
choose one of the possible combinations :
|
choose one of the possible combinations :
|
||||||
1 of (width, t0), 1 of (peak_power, energy), gamma and beta2 together optional (not one without the other)
|
[1 of (width, t0), 1 of (peak_power, energy)]
|
||||||
soliton_num, gamma, 1 of (width, peak_power, energy, t0)
|
adding both gamma and beta2 is optional
|
||||||
|
[soliton_num, gamma, 1 of (width, peak_power, energy, t0)]
|
||||||
examples :
|
examples :
|
||||||
specify width, peak_power and energy -> t0 and energy will be computed
|
specify width, peak_power and energy -> t0 and energy will be computed
|
||||||
specify soliton_num, gamma, peak_power, t0 -> width, t0 and energy will be computed
|
specify soliton_num, gamma, peak_power, t0 -> width, t0 and energy will be computed
|
||||||
@@ -578,9 +582,10 @@ def compress_pulse(spectra):
|
|||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
spectra : ND array
|
spectra : ND array
|
||||||
spectra to compress. The shape must be at least 2D. Compression occurs along the -2th axis.
|
spectra to compress. The shape must be at least 2D. Compression occurs along
|
||||||
This means spectra have to be of shape ([what, ever,] n, nt) where n is the number of spectra
|
the -2th axis. This means spectra have to be of shape ([what, ever,] n, nt) where n
|
||||||
brought together for one compression operation and nt the resolution of the grid.
|
is the number of spectra brought together for one compression operation and nt the
|
||||||
|
resolution of the grid.
|
||||||
|
|
||||||
Returns
|
Returns
|
||||||
----------
|
----------
|
||||||
@@ -727,7 +732,8 @@ def peak_ind(values, mam=None):
|
|||||||
Returns
|
Returns
|
||||||
----------
|
----------
|
||||||
left_ind, right_ind : int
|
left_ind, right_ind : int
|
||||||
indices of the the left and right spots where values starts rising again, with a margin of 3
|
indices of the the left and right spots where values starts rising again,
|
||||||
|
with a margin of 3
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if mam is None:
|
if mam is None:
|
||||||
@@ -755,8 +761,9 @@ def peak_ind(values, mam=None):
|
|||||||
|
|
||||||
|
|
||||||
def setup_splines(x_axis, values, mam=None):
|
def setup_splines(x_axis, values, mam=None):
|
||||||
"""sets up spline interpolation to better measure a peak. Different splines with different orders are
|
"""sets up spline interpolation to better measure a peak. Different splines with different
|
||||||
necessary because derivatives and second derivatives are computed to find extremea and inflection points
|
orders are necessary because derivatives and second derivatives are computed to find extremea
|
||||||
|
and inflection points
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
x_axis : 1D array
|
x_axis : 1D array
|
||||||
@@ -925,7 +932,8 @@ def _select_roots(d_spline, d_roots, dd_roots, fwhm_pos):
|
|||||||
right_lim : list
|
right_lim : list
|
||||||
location of the right limit
|
location of the right limit
|
||||||
"""
|
"""
|
||||||
# includes inflection points when slope is low (avoids considering the inflection points around fwhm limits)
|
# includes inflection points when slope is low
|
||||||
|
# (avoids considering the inflection points around fwhm limits)
|
||||||
|
|
||||||
all_roots = np.append(d_roots, dd_roots)
|
all_roots = np.append(d_roots, dd_roots)
|
||||||
good_roots = all_roots[np.abs(d_spline(all_roots)) < np.max(d_spline(all_roots)) / 10]
|
good_roots = all_roots[np.abs(d_spline(all_roots)) < np.max(d_spline(all_roots)) / 10]
|
||||||
|
|||||||
@@ -137,7 +137,10 @@ def create_zoom_axis(
|
|||||||
frame_style=dict(c="k", lw=0.5),
|
frame_style=dict(c="k", lw=0.5),
|
||||||
plot=True,
|
plot=True,
|
||||||
):
|
):
|
||||||
"""creates a zoomed in plot inside a plot. Should be called as a last step as parent axis limits will be locked
|
"""
|
||||||
|
creates a zoomed in plot inside a plot. Should be called as a last step as parent axis
|
||||||
|
limits will be locked
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
axis : parent axis object
|
axis : parent axis object
|
||||||
@@ -296,7 +299,8 @@ def propagation_plot(
|
|||||||
skip : int, optional
|
skip : int, optional
|
||||||
only plot one every skip values along the x axis (y if transposed), by default 1
|
only plot one every skip values along the x axis (y if transposed), by default 1
|
||||||
cbar_label : Optional[str], optional
|
cbar_label : Optional[str], optional
|
||||||
label of the colorbar. No colorbar is drawn if this is set to None, by default "normalized intensity (dB)"
|
label of the colorbar. No colorbar is drawn if this is set to None,
|
||||||
|
by default "normalized intensity (dB)"
|
||||||
cmap : str, optional
|
cmap : str, optional
|
||||||
colormap, by default None
|
colormap, by default None
|
||||||
ax : Axes, optional
|
ax : Axes, optional
|
||||||
@@ -565,7 +569,9 @@ def transform_mean_values(
|
|||||||
log: Union[bool, int, float] = False,
|
log: Union[bool, int, float] = False,
|
||||||
spacing: Union[int, float] = 1,
|
spacing: Union[int, float] = 1,
|
||||||
) -> tuple[np.ndarray, np.ndarray, np.ndarray]:
|
) -> tuple[np.ndarray, np.ndarray, np.ndarray]:
|
||||||
"""transforms values similar to transform_1D_values but with a collection of lines, giving also the mean
|
"""
|
||||||
|
transforms values similar to transform_1D_values but with a collection of lines,
|
||||||
|
giving also the mean
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
@@ -851,7 +857,8 @@ def plot_spectrogram(
|
|||||||
----------
|
----------
|
||||||
values : 2D array
|
values : 2D array
|
||||||
axis 0 defines the position in the fiber and axis 1 the position in time, frequency or wl
|
axis 0 defines the position in the fiber and axis 1 the position in time, frequency or wl
|
||||||
example : [[1, 2, 3], [0, 1, 0]] describes a quantity at 3 different freq/time and at two locations in the fiber
|
example : [[1, 2, 3], [0, 1, 0]] describes a quantity at 3 different freq/time and at
|
||||||
|
two locations in the fiber
|
||||||
x_range, y_range : PlotRange
|
x_range, y_range : PlotRange
|
||||||
one of them must be time, the other one must be wl/freq
|
one of them must be time, the other one must be wl/freq
|
||||||
min, max : int or float
|
min, max : int or float
|
||||||
|
|||||||
@@ -394,7 +394,8 @@ class SimulatedFiber:
|
|||||||
z_ind : int
|
z_ind : int
|
||||||
z_index relative to the entire simulation
|
z_index relative to the entire simulation
|
||||||
sim_ind : int, optional
|
sim_ind : int, optional
|
||||||
simulation index, used when repeated simulations with same parameters are ran, by default 0
|
simulation index, used when repeated simulations with same parameters are ran,
|
||||||
|
by default 0
|
||||||
|
|
||||||
Returns
|
Returns
|
||||||
-------
|
-------
|
||||||
|
|||||||
Reference in New Issue
Block a user