pyLaserPulse.bessel_mode_solver

Classes

bessel_mode_solver(core_rad, clad_rad, n_co, ...)

Find modes supported by a step index fibre.

class pyLaserPulse.bessel_mode_solver.bessel_mode_solver(core_rad, clad_rad, n_co, n_cl, wl, tol=1e-09)

Find modes supported by a step index fibre.

Based loosely on code in pyMMF and D. Marcuse, “Light Transmission Optics”, Van Nostrand Reinhold, New York, 1972.

__init__(core_rad, clad_rad, n_co, n_cl, wl, tol=1e-09)
Parameters:
  • core_rad (float) – Radius of the core in m

  • clad_rad (float) – Radius of the cladding in m

  • n_co (float) – Refractive index of the core

  • n_cl (float) – Refractive index of the cladding

  • wl (float) – Wavelength of the light in m

LP_eigenvalue_equation(u)

Find my roots for guided modes!

Parameters:

u (numpy array) – u = r_core * sqrt(n_core^2 * k^2 - beta^2)

Returns:

(J_v(u) / (u J_v-1(u))) + (K_v(w) / (w K_v-1(w)))

Return type:

numpy array

Notes

LP modes can be found by finding the roots to this function. See D. Marcuse, “Light Transmission Optics”, Van Nostrand Reinhold, New York, 1972.

root_func(u)

Wrapper for using scipy.optimize.root to find the roots of self.LP_eigenvalue_equation.

Parameters:

u (numpy array) – u = r_core * sqrt(n_core^2 * k^2 - beta^2)

Returns:

Solution (i.e., the roots of self.LP_eigenvalue_equation).

Return type:

scipy OptimizeResult object

solve(max_modes=500)

Find the LP modes of an ideal step-index fibre.

Parameters:

max_modes (int) – Maximum number of modes to find

make_modes(r, num_modes=1)

Return an array containing the mode shapes.

Parameters:
  • r (numpy array) – radial (polar) axis.

  • num_modes (int.) – Number of mode profiles to calculate (starts from LP01) if num_modes > self.num_modes, default to self.num_modes

get_amplitude_distribution(std=None)

Calculate an incoherent sum of all modes.

Parameters:

std – If None, then the modes are assumed to contain equal energy. If numeric, it is used as the standard deviation for a normal distribution which scales the mode energy (favouring low-order modes).