Dear Sébastien,
Thanks a lot for making this package available! I am using it to learn about light propagation through MMFs, and to simulate my next experiment.
I want to use a high NA MMF, with a large fiber core, and lambda = 800 nm (NA=0.5, core radius=50 um). This leads to a (very) large number of modes (around 9500), and I noticed that in that case, the semi-analytical and the eigenvalue solvers do not give the same results.
I used the basic_tests.py script to compare their performances, and I had several issues:
-
I consistently get this error message:
pyMMF-master\pyMMF\solvers\SI.py:204: RuntimeWarning: invalid value encountered in multiply jv(m, u / a * R) / jv(m, u) * Rlessa + kn(m, w / a * R) / kn(m, w) * Rgreatera
-
As well as this one:
pyMMF-master\pyMMF\solvers\SI.py:204: RuntimeWarning: overflow encountered in divide jv(m, u / a * R) / jv(m, u) * Rlessa + kn(m, w / a * R) / kn(m, w) * Rgreatera
-
The eigenvalue solver takes too long to run, I had to stop the computation after 10 minutes. I guess it's because there are just too many modes?
In order to see results faster, I reduced the NA to 0.2 and the core radius to 10 um, keeping lambda=800 nm.
In that case, the semi-analytical solver finds 63 modes, and the eigenvalue solver finds 65. This makes the test_SI() function crash, but I guess it's probably not a very big deal?
Reducing the NA to 0.15 (still with a core radius of 10 um and lambda = 800nm), both solvers find 36 modes, but I noticed that they give slightly different results, as seen in the document attached.
semianalytical_eigenvalue_comparison.pdf
Is this behaviour expected? Are the results close enough that this wouldn't really be considered an issue?
In any case, thanks again for making this tool available to all, it's a great help to newcomers to the field like myself.
Best,
Assia Benachir
Postdoc researcher at EPFL
Dear Sébastien,
Thanks a lot for making this package available! I am using it to learn about light propagation through MMFs, and to simulate my next experiment.
I want to use a high NA MMF, with a large fiber core, and lambda = 800 nm (NA=0.5, core radius=50 um). This leads to a (very) large number of modes (around 9500), and I noticed that in that case, the semi-analytical and the eigenvalue solvers do not give the same results.
I used the basic_tests.py script to compare their performances, and I had several issues:
I consistently get this error message:
pyMMF-master\pyMMF\solvers\SI.py:204: RuntimeWarning: invalid value encountered in multiply jv(m, u / a * R) / jv(m, u) * Rlessa + kn(m, w / a * R) / kn(m, w) * RgreateraAs well as this one:
pyMMF-master\pyMMF\solvers\SI.py:204: RuntimeWarning: overflow encountered in divide jv(m, u / a * R) / jv(m, u) * Rlessa + kn(m, w / a * R) / kn(m, w) * RgreateraThe eigenvalue solver takes too long to run, I had to stop the computation after 10 minutes. I guess it's because there are just too many modes?
In order to see results faster, I reduced the NA to 0.2 and the core radius to 10 um, keeping lambda=800 nm.
In that case, the semi-analytical solver finds 63 modes, and the eigenvalue solver finds 65. This makes the
test_SI()function crash, but I guess it's probably not a very big deal?Reducing the NA to 0.15 (still with a core radius of 10 um and lambda = 800nm), both solvers find 36 modes, but I noticed that they give slightly different results, as seen in the document attached.
semianalytical_eigenvalue_comparison.pdf
Is this behaviour expected? Are the results close enough that this wouldn't really be considered an issue?
In any case, thanks again for making this tool available to all, it's a great help to newcomers to the field like myself.
Best,
Assia Benachir
Postdoc researcher at EPFL