This repository contains code to explore the unique properties of complex time integration.
Some of the notebooks contain code that generate the figures in the paper. Those notebooks have the section number of the figures in their title. Some of the notebooks use the package Nodepy[1]. The code written in these notebooks have used Nodepy[1] in the process of experimentation and as inpsiration.
For a reader that wants a slow introduction to the code, this is the reccomended order based on ease of code readability.
- 2_step_3_order_paths.ipynb : Shows the derivation of 2 step 3rd order paths for particular odes. Try changing the ode to get the new path.
- 2_step_3_order_convergence_plot.ipynb : This uses the paths derived in the previous notebook and shows the convergence results on those particular odes.
- Paths_and_ODEs.ipynb : Uses the complex paths to simulate a variety of different odes.
- Burgers_equation.ipynb : The complex paths are used to simulate the Burgers equation.
- Stability_diagrams.ipynb: Visualizes the stability regions obtained by taking multiple complex Euler steps.
- Projective_Integration.ipynb: Illustrates cases where complex time steps make Projective Integration stable and visualizes the stability regions.
- Barrier_breakingRK2-3_integrator_derivation.ipynb : This notebook derives the complex coefficients of the rk2/rk3 integrator that has 5th order accuracy with 5 function evaluations. The order conditions in theses notebooks were obtained using a separate mathematica notebook.
- Barrier_breakingRK2-3_integrator.ipynb : This uses the integrator derived in the previous notebook and verifies the 5th order accuracy on non-autonomous scalar odes.
[1]Ketcheson, D. I. NodePy software version 1.0.1 http://github.com/ketch/nodepy/.