Splittings.jl Documentation
Operators splitting package to solve equations of the form
\[ \frac{dU}{dt} = (T+V)U,\]
where T and V are differential operators.
The composition algorithm consists in successive solutions of the split equations
\[\frac{dU}{dt} = T U \]
and
\[\frac{dU}{dt} = V U \]
Alternating the two reduced solution operators $\mathcal{S}_{T}$ and $\mathcal{S}_{V}$ with adequately chosen time increments yields arbitrary order in time for the full solution.
The application of an operator splitting method to a concrete problem is done by using Julia macros:
Splittings.@Lie
— Macro.@Lie( push_t, push_v )
Apply the first order Lie splitting
push_t and push_v are two function calls with
`dt` as argument.
Splittings.@Strang
— Macro.@Strang( push_t, push_v )
Apply the second order Strang splitting
push_t and push_v are two function calls with
`dt` as argument.
Splittings.@TripleJump
— Macro.@TripleJump( push_t, push_v )
Apply the fourth order Triple Jump splitting
push_t and push_v are two function calls with
`dt` as argument.
Splittings.@Order6
— Macro.@Order6( push_t, push_v )
Apply the sixth order splitting
push_t and push_v are two function calls with
`dt` as argument.
Examples of applications are provided for:
- The linear pendulum problem.
- The Vlasov equation with constant coefficients advection field.
- The non linear Vlasov-Poisson equations in cartesian coordinates.
This code is derived from Fortran and Python codes written by:
- Edwin Chacon Golcher (Institute of Physics of the Czech Academy of Sciences).
- Michel Mehrenberger (Aix-Marseille Université).
- Eric Sonnendrucker (Max-Planck-Institut für Plasmaphysik).