Skip to content

Pranab-JD/LeXInt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python C++ nVIDIA VS Code Github

ascl:2208.009

Leja interpolation for eXponential Integrators is a temporal integration package that comprises of a compilation of exponential integrators, specifically, the Exponential Rosenbrock (EXPRB) and Exponential Propagation Iterative Runge-Kutta (EPIRK) solvers.

The action of the matrix exponential or the $\varphi_l(z)$ functions on a vector is computed using the method of polynomial interpolation at Leja points. For homogenous linear PDEs, one can obtain the exact solution (in time) by directly computing the matrix exponential using the functions real_Leja_exp and/or imag_Leja_exp, whereas for nonhomogenous linear PDEs, one can use real_Leja_phi_nl and/or imag_Leja_phi_nl. The algorithmic details can be found in the cited literature.

Requirements

  • For Python:

    • Python 3.10 (or later)
  • For C++:

    • gcc compiler
  • For CUDA:

    • NVIDIA GPU
    • CUDA 11.2 (or later)
    • nvcc compiler

Literature

The publications associated with this code:

Deka, Moriggl, and Einkemmer (2023), LeXInt: GPU-accelerated Exponential Integrators package
[arXiv:2310.08344]

Deka, Einkemmer, and Tokman (2023), LeXInt: Package for Exponential Integrators employing Leja interpolation, SoftwareX, 21, 101302
[DOI] [arXiv:2208.08269]

Other references:

  • Caliari et al. (2014), Comparison of software for computing the action of the matrix exponential, BIT Numer. Math., 54, 113
    [DOI]

  • Deka & Einkemmer (2022), Efficient adaptive step size control for exponential integrators, Comput. Math. Appl., 123, 59
    [DOI] [arXiv:2102.02524]

  • Deka & Einkemmer (2022), Exponential Integrators for Resistive Magnetohydrodynamics: Matrix-free Leja Interpolation and Efficient Adaptive Time Stepping, ApJS, 259, 57
    [DOI] [arXiv:2108.13622]

  • Hochbruck & Ostermann (2010), Exponential integrators, Acta Numer., 19, 209
    [DOI]

Future Prospects

We will MPI-parallelise the CUDA/C++ code.

Contact

Pranab J. Deka ([email protected])
Lukas Einkemmer ([email protected])
Mayya Tokman ([email protected])

In case you face issues using LeXInt, kindly contact Pranab J. Deka.

Acknowledgements

Alexander Moriggl contributed to the development of the CUDA version.