3.2. fmas.propagation_constant¶
The provided module implements a convenience class for performing simple calculations for a user-defined propagation constant.
Convenience class for working with propagation constants. |
|
Propagation constant for ZBLAN fiber. |
|
Propagation constant for an ESM PCF. |
|
Propagation constant for NLPM750 PCF. |
|
Helper function for propagation constant. |
|
Helper function for propagation constant. |
|
Helper function for propagation constant. |
-
class
fmas.propagation_constant.
PropConst
(beta_fun)¶ Convenience class for working with propagation constants.
Implements methods that provide convenient access to recurrent tasks involving propagation constants.
- Parameters
beta_fun (
callable
) – Function implementing a propagation constant.
-
beta_fun
¶ Function implementing a propagation constant.
- Type
callable
-
dw
¶ Angular frequency increment used for calculating derivatives.
- Type
int
-
c0
¶ Speed of light (default = 0.29970 micron/fs).
- Type
float
-
CD
(w)¶ Chromatic dispersion.
- Parameters
w (
numpy array
or float) – Angular frequency for which to compute chromatic dispersion.- Returns
Chromatic dispersion.
- Return type
numpy.ndarray
or float
-
beta
(w)¶ Propagation constant.
- Parameters
w (
numpy.ndarray
) – Angular frequency for which to compute propagation constant.- Returns
Propagation constant.
- Return type
numpy.ndarray
or float
-
beta1
(w)¶ Group delay.
- Parameters
w (
numpy.ndarray
) – Angular frequency for which to compute group delay.- Returns
Group delay.
- Return type
numpy.ndarray
or float
-
beta2
(w)¶ Group velocity dispersion (GVD).
- Parameters
w (
numpy.ndarray
) – Angular frequency for which to compute GVD.- Returns
Group velocity dispersion.
- Return type
numpy.ndarray
or float
-
beta3
(w)¶ Third order dispersion.
- Parameters
w (
numpy.ndarray
) – Angular frequency for which to compute 3rd order dispersion.- Returns
Group velocity dispersion.
- Return type
numpy.ndarray
or float
-
compute_expansion_coefficients
(w0, n_max=5)¶ Obtain Taylor expansion coefficients at given frequency.
Note
Uses scipy.misc.derivative and scipy.misc.factorial for computing the expansion coefficients.
- Parameters
w0 (
float
) – Frequency value about which to expand.n_max (
int
) – Number of expansion coefficients to compute (default = 5).
- Returns
Taylor expansion coefficients.
- Return type
numpy.ndarray
-
find_match_beta1
(w0, w_min, w_max)¶ Determine group velocity matched partner frequency.
Attempts to find a group-velocity matched partner frequency for \(\omega_0\) in the interval from \(\omega_{\mathrm{min}}\) to \(\omega_{\mathrm{max}}\).
Note
Helper method for analysis of dispersion profile
Uses scipy.optimize.minimize_scalar for bracketed minimization
If no group velocity matched frequency is contained in the supplied interval, the output should not be trusted. Check the resulting frequency by assessing whether beta1(res)==beta1(w0).
- Parameters
w0 (
float
) – Frequency for which group velocity matched partner frequency will be computed.w_min (
float
) – Lower bound for root finding procedurew_max (
float
) – Upper bound for root finding procedure
- Returns
Group-velocity matched partner frequency of w0.
- Return type
float
-
find_root_beta2
(w_min, w_max)¶ Determine bracketed root of 2nd order dispersion profile.
Attempts to find a root of the 2nd order dispersion profile in the interval from \(\omega_{\mathrm{min}}\) to \(\omega_{\mathrm{max}}\).
Note
Helper method for analysis of dispersion profile
Uses scipy.optimize.bisect for bracketed root finding
- Parameters
w_min (
float
) – lower bound for root finding procedurew_max (
float
) – upper bound for root finding procedure
- Returns
root of 2nd order dispersion profile in bracketed interval
- Return type
float
-
lam
(w)¶ Angular frequency to wavelength conversion.
- Parameters
w (
numpy array
or float) – Angular frequency for which to compute wavelengths.- Returns
Wavelength values.
- Return type
numpy.ndarray
or float
-
local_coeffs
(w0, n_max=5)¶ Obtain Taylor expansion coefficients at given frequency.
Note
Uses scipy.misc.derivative and scipy.misc.factorial for computing the expansion coefficients.
- Parameters
w0 (
float
) – Frequency value about which to expand.n_max (
int
) – Number of expansion coefficients to compute (default = 5).
- Returns
Taylor expansion coefficients.
- Return type
numpy.ndarray
-
v_sol_corr
(t0, w)¶ Corrected soliton velocity.
Computes corrected soliton velocity
\[v_{g}^\prime(\omega_0, t_0) = \left[ \beta_1(\omega_0) - \beta_2(\omega_0)/(\omega_0 t_0^2) + \beta_3(\omega_0)/(6t_0^2) \right]^{-1},\]defined in [PBA2016].
- Parameters
t0 (
float
) – Soliton duration.w (
numpy array
or float) – Angular frequency for which to compute group-velocity.
- Returns
corrected soliton velocity.
- Return type
numpy.ndarray
or float
- PBA2016
S. Pickartz, U. Bandelow, Sh. Amiranashvili, Adiabatic theory of solitons fed by dispersive waves, Phys. Rev. A 94 (2016) 033811, https://doi.org/10.1103/PhysRevA.94.033811.
-
vg
(w)¶ Group velocity profile.
- Parameters
w (
numpy array
or float) – Angular frequency for which to compute group-velocity.- Returns
Group velocity.
- Return type
numpy.ndarray
or float
-
fmas.propagation_constant.
define_beta_fun_ESM
()¶ Propagation constant for an ESM PCF.
Enclosing function returning a closure implementing a rational Pade-approximant of order [8/8] for the refractive index of a endlessly single mode (ESM) nonlinear photonic crystal fiber (PCF), see [SK2007].
- Returns
Propagation constant for ESM PCF.
- Return type
callable
- SK2007
J.M. Stone, J.C. Knight, Visibly ‘white’ light generation in uniform photonic crystal fiber using a microchip laser , Optics Express 16 (2007) 2670.
-
fmas.propagation_constant.
define_beta_fun_NLPM750
()¶ Propagation constant for NLPM750 PCF.
Enclosing function returning a closure implementing a rational Pade-approximant of order [4/4] for the refractive index of a NL-PM-750 nonlinear photonic crystal fiber (PCF), see [NLPM750].
- Returns
Propagation constant for NL-PM-750 PCF.
- Return type
callable
- NLPM750
NL-PM-750 Nonlinear Photonic Crystal Fiber, www.nktphotonics.com.
-
fmas.propagation_constant.
define_beta_fun_PCF_Ranka2000
()¶ Helper function for propagation constant.
Enclosing function returning a closure implementing a polynomial expansion of order 11 for the propagation constant of [RWS2000] given in [DGC2006].
- Returns
Propagation constant.
- Return type
callable
- RWS2000
J. K. Ranka, R. S. Windeler, A. J. Stentz, Visible continuum generation in air-silica microstructure optical fibers with anomalous dispersion at 800 nm, Opt. Lett. 25 (2000) 25, https://doi.org/10.1364/OL.25.000025.
- DGC2006
J. M. Dudley, G. Genty, S. Coen, Supercontinuum generation in photonic crystal fiber, Rev. Mod. Phys. 78 (2006) 1135, http://dx.doi.org/10.1103/RevModPhys.78.1135
-
fmas.propagation_constant.
define_beta_fun_ZBLAN
()¶ Propagation constant for ZBLAN fiber.
Enclosing function returning a closure implementing a rational Pade-approximant of order [4/4] for the refractive index of a ZBLAN fiber (PCF).
- Returns
Propagation constant for NL-PM-750 PCF.
- Return type
callable
-
fmas.propagation_constant.
define_beta_fun_fluoride_glass_AD2010
()¶ Helper function for propagation constant.
Enclosing function returning a closure implementing a rational Pade-approximant of order [5/5] for the refractive index of a fluorid glass fiber given in [AD2010].
- Returns
Propagation constant for NL-PM-750 PCF.
- Return type
callable
- AD2010
Sh. Amiranashvili, A. Demircan, Hamiltonian structure of propagation equations for ultrashort optical pulses, Phys. Rev. A, 82 (2010) 013812
-
fmas.propagation_constant.
define_beta_fun_slot_waveguide_Zhang2012
()¶ Helper function for propagation constant.
Enclosing function returning a closure implementing a polynomial expansion of order 8 for the propagation constant of [Z2012].
- Returns
Propagation constant.
- Return type
callable
- Z2012
Zhang et al., Silicon waveguide with four zero-dispersion wavelengths and its application in on-chip octave spanning supercontinuum generation, Opt. Express 20 (2012) 1685.