solve(solver=’WKB’)#

pyMMF.propagationModeSolver.solve(self, solver: str = 'default', curvature: bool = None, storeData: bool = True, options: dict = {})

Find the propagation constants of parabolic GRIN multimode fibers under the WKB approximation [1]. This approximation leads to inaccurate results for groups of modes close to the cutoff, hence is not suitable when a limited number of modes is considered. It is provided only for comparison. The IndexProfile must be initialized with the initParabolicGRIN method.

See also

For documentation for the rest of the parameters, see pyMMF.propagationModeSolver.solve()

Options:
tolfloat, optional

Tolerance on the propagation constant. Default is 1e-9.

degenerate_mode{‘exp’, ‘sin’}, optional

Choice for degenerate subspaces.

  • ‘exp’: returns the orbital angular momentum modes. For an azimuthal index (m > 0), the azimuthal function is (exp(i cdot -m cdot theta)) and (exp(i cdot m cdot theta)).

  • ‘sin’: returns the linearly polarized modes. These modes have real-valued fields with azimuthal functions (sin(m cdot theta)) and (cos(m cdot theta)) for (m > 0).

Default is ‘exp’.

n_jobsint, optional

Number of parallel jobs to run. Default is -2, which means using all available processors.

Notes

Propagation constants under the WKB approximation:

\[\beta_{l,m} = \sqrt{k_o^2 n_1^2 - 2\alpha \left( |l| + 2m + 1 \right)}\]
\[\alpha = \frac{k_o n_1}{b}\]

with

\[b = \frac{ \text{radius} \times n_1 }{ \text{NA} }\]

Mode profiles under the WKB approximation:

\[\psi_{l,m}(r, \phi) = A e^{- \frac{\alpha r^2}{2}} (\alpha r^2)^{|m|/2} L_l^{|m|}(\alpha r^2) e^{im\phi}\]

where \(L_l^{|m|}\) are the Laguerre polynomials.