A Julia package for the symbolic manipulation of flows of nonlinear evolution equations.
Version 2.0 of Flows.jl additionally implements symbolic manipulations of Lie derivatives and exponentials of Lie derivatives. It allows to transform Lie calculus expressions into corresponding expressions consisting only of (Fréchet derivatives of) vector fields and flows, see the examples below.
W. Auzinger, H. Hofstätter, O. Koch, Symbolic Manipulation of Flows of Nonlinear Evolution Equations, with Application in the Analysis of Split-Step Time Integrators, Proceedings of CASC 2016, Lecture Notes in Computer Science 9890, pp. 43-57.
Flows.jl (or a predecessor written in Perl) was used to carry out and verify the symbolic manipulations needed for the analysis of error estimators for splitting methods, which is described in the paper
W. Auzinger, H. Hofstätter, O. Koch, M. Thalhammer, Defect-based local error estimators for splitting methods, with application to Schrödinger equations, Part III. The nonlinear case, J. Comput. and Appl. Math. 273 (2015), pp. 182-204.
Flows.jl consists of ~2500 lines of Julia code and is fully self-contained, of course with the (very relevant!) exception that it depends on the Julia standard library (but not on additional Julia packages).
In a Julia notebook type
To get easy access to the examples, copy them into the home directory:
cp(joinpath(homedir(), ".julia/v0.4/Flows/examples/"), joinpath(homedir(), "Flows_examples"), remove_destination=true)
Then 'Flows_examples' will be listed in the JuliaBox home screen. The examples contain among others