Formulas that read like formulas
Every scheme is written against one abstract type, integrand_object: U = U + (U%t(t=t) * Dt) is the forward Euler scheme, not a pseudo-code of it.
The design
Write your system once as an integrand type, integrate it with 86 explicit, implicit, multistage and multistep schemes selected by name. Pure Fortran 2008, built on the Abstract Data Type pattern of Rouson.
FOODIE integrates in time the initial value problem
where
A concrete integrand, here the linear equation
use foodie, only : foodie_integrator_factory, integrator_object, integrator_multistage_object
...
class(integrator_object), allocatable :: integrator
call foodie_integrator_factory(scheme='runge_kutta_ssp_stages_3_order_3', integrator=integrator, U=integrand)
select type(integrator)
class is(integrator_multistage_object)
do step=1, 100
call integrator%integrate(U=integrand, Dt=0.01_R_P, t=time)
time = time + 0.01_R_P
enddo
endselectThe quick start builds the integrand and the loop step by step; the catalogue lists every scheme with its order and its references.
Contributions are welcome — see the Contributing page.
This project is distributed under a multi-licensing system:
Anyone interested in using, developing, or contributing to this project is welcome — pick the license that best fits your needs.