pyMMF.propagationModeSolver.solve#
- propagationModeSolver.solve(solver='default', curvature=None, storeData=True, options={})[source]#
Find the propagation constants and mode profile of a multimode fiber. For an arbitrary index profile, it finds the solution of the eigenvalue problem of the scalar wave equation in a discretized space [1].
- Parameters:
- storeData: bool
Stores data in the propagationModeSolver object is set to True defaults to True
- curvature: float
Curvature of the fiber in meters defaults to None
- solver: string (‘default’, ‘radial’, ‘eig’, ‘SI’, or ‘WKB’)
solver to be used.Type of solver. Should be one of
‘radial’ solves the 1D radial wave equation for axisymmetric profiles. It requires the profile to be defined by a radial function with the
initFromRadialFunction
method.‘eig’ solves the eigenvalue problem in the discretized space. Slower and less precise, but allows for non-axisymmetric profiles and bend curvature.
‘SI’ solves numerically the analytical dispersion relation for step index fibers and approximate modes to LP modes.
‘WKB’ uses the WKB approximation for GRIN profiles.
‘default’ tries to find the optimal solver for the given index profile.
Default is ‘default’ ;)
- options: dict
A dictionary of solver options. They are specific to the solver used, read the documentation of the solver for more information.
- Returns:
- modesModes
Modes object containing all the mode information.
- Parameters:
solver (str)
curvature (bool)
storeData (bool)
options (dict)