pyMMF.IndexProfile.initFromRadialFunction#

IndexProfile.initFromRadialFunction(nr)[source]#

Initializes the index profile from a radial function. Use this function to define a custom axisymmetric index profile.

Parameters:
nrCallable[[float], float]

A callable function that takes a float argument and returns the refractive index.

Returns:
None
Parameters:

nr (Callable[[float], float])

Return type:

None

Examples

Ring core fiber index profile:

import numpy as np
import pyMMF
n1 = 1.445
n2 = 1.45
n3 = 1.44
a = 5
b = 10
npoints = 256
areaSize = 25
profile = pyMMF.IndexProfile(npoints=npoints, areaSize=areaSize)
def radialFunc(r):
    if r < a:
        return n1
    elif r < b:
        return n2
    else:
        return n3
profile.initFromRadialFunction(radialFunc)