{jcomments on}

\(

\def\ket#1{{\left|{#1}\right\rangle}}

\def\bra#1{{\left\langle{#1}\right|}}

\def\braket#1#2{{\left\langle{#1}|{#2}\right\rangle}}

\)

## [tutorial] pyMMF: Simulating Multimode Fibers in Python

## Part 1: Step Index Benchmark

I recently published a two-part tutorial on how to find the modes of an arbitrary multimode fiber without or with bending. Based on this tutorial, I published a (still experimental) version of a Python module to find the modes of multimode fibers and calculate their transmission matrix: pyMMF. The goal of this module is not to compete with commercial solutions in term of precision but to provide a way to easily simulate realistic fiber systems. To validate the approach, I use step-index multimode fibers as a benchmark test as the dispersion relation is analytically known (see my tutorial here) and for which the Linearly Polarized (LP) mode approximation yields good results. I focus my attention here on the precision of the numerically found propagation constants.

{jcomments on}

\(

\def\ket#1{{\left|{#1}\right\rangle}}

\def\bra#1{{\left\langle{#1}\right|}}

\def\braket#1#2{{\left\langle{#1}|{#2}\right\rangle}}

\)

## [tutorial] Numerical Estimation of Multimode Fiber Modes and Propagation Constants:

## Part 2: Bent Fibers

We saw in the first part of the tutorial that the profiles and the propagation constants of the propagation modes of a straight multimode fiber can easily be avulated for an arbitrary index profile by inverting a large but sparse matrix. Under some approximations [1], a portion of fiber with a fixed radius of curvature satisfies a similar problem that can be solved with the same numerical tools, as we illustrate with the PyMMF Python module [2]. Moreover, when the modes are known for the straight fiber, the modes for a fixed radius can be approximate by inverting a square matrix of size the number of propagating modes [1]. It allows fast computation of the modes for different radii of curvature.

# [tutorial] Modes of step index multimode fibers

Scattering media were the first type of "complex media" for which wavefront shaping techniques were applied. Quickly, applications were developed for multimode fibers as well. One can consider multimode fiber as a complex media; because of its inherent modal dispersion (different modes travel at different speeds) and also because of the possible coupling between modes, the output field of the fiber does not resemble its input one. Wavefront shaping in multimode fibers has had a fast development because of its applications in biomedical endoscopic imaging and for telecommunications, where the exploitation of the spatial modes in multimode fibers offers a promising way to increase data rates compared to single mode fibers.

I present here a quick tutorial on the calculation of the modes of a step index multimode fiber and how to find the so called linearly polarized modes, that are convenient for manipulation using shaping techniques.

{jcomments on}

\(

\def\ket#1{{\left|{#1}\right\rangle}}

\def\bra#1{{\left\langle{#1}\right|}}

\)

## [tutorial] Numerical Estimation of Multimode Fiber Modes and Propagation Constants:

## Part 1: Straight Fibers

Under the weakly guided approximation, analytical solutions for the mode profiles of step index (SI) and graded index (GRIN) multimode fibers (MMF) can be found [1]. It also gives a semi-analytical solution for the dispersion relation in SI MMFs, and, by adding stronger approximations, an analytical solution for the parabolic profile GRIN MMFs [2] (note that those approximations do fail for lower order modes). An arbitrary index profile requires numerical simulations to estimate the mode profiles and the corresponding propagation constants of the modes. I present in this tutorial how to numerically estimate the scalar solution for the profiles and propagation constants of guides modes in multimode circular waveguide with arbitrary index profile and in presence of bending. I released a beta version of the Python module pyMMF based on such approach [3]. It relies on expressing the transverse Helmholtz equation as an eigenvalue problem. Solutions are found by finding the eigenvectors of a large but spare matrix representing the equation on the discretized space.