Dispysion is a library to locate exceptional points (EP) from analytical dispersion equations
With this package, only the equation sympy.
It avoids the subsitution step required to establish the equation of the EP, which may be sometimes cumbersome or unavailable.
The EP with complex- or real-valued parameters are obtained with Levenberg-Marquard solver (adapted from EasterEig).
This solver is iterative and requires an initial guess. If several EPs are required, several initial guesses have to be tested.
When the EP equation is available, solver leading to all solutions like those based on based on the argument principle (see for instance polze are generally more robust but limited are to complex-valued parameters.
For EP2 with real-valued parameters, an alternative, based on continuation, exists and can be found in real-valued-ep2 see 1 for details.
todo
todo
If you need to modify the code or the last development version, you need to install dispyrsion from the source. The sources are available on the github repos.
First, you need to download and to install polze from the polze README page.
Then, you need to get the dispyrsion sources. In a console opened in the dispyrsion top level folder, run
pip install .Tests are handled with doctest and with unittest. To execute the full test suite, run :
python -m dispyrsionSeveral examples are given in the examples folder.
Footnotes
-
Even, N., Nennig, B., Lefebvre, G., & Perrey-Debain, E. (2023). Experimental observation of exceptional points in coupled pendulums. Journal of Sound and Vibration, 575:118239, 2024. doi:10.1016/j.jsv.2024.118239. arXiv preprint arXiv:2308.01089. 10.48550/arXiv.2308.01089. ↩