3.2. fmas.propagation_constant

The provided module implements a convenience class for performing simple calculations for a user-defined propagation constant.

PropConst

Convenience class for working with propagation constants.

define_beta_fun_ZBLAN

Propagation constant for ZBLAN fiber.

define_beta_fun_ESM

Propagation constant for an ESM PCF.

define_beta_fun_NLPM750

Propagation constant for NLPM750 PCF.

define_beta_fun_fluoride_glass_AD2010

Helper function for propagation constant.

define_beta_fun_PCF_Ranka2000

Helper function for propagation constant.

define_beta_fun_slot_waveguide_Zhang2012

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 procedure

  • w_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 procedure

  • w_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.