Skip to content

Background and Motivations

Stefano Zaghi edited this page Aug 13, 2015 · 4 revisions

Systems of Ordinary Differential Equation (ODE): the Initial Values Problems (IVP)

FOODiE is designed to integrate systems of ODEs in the contest of IVPs.

The mathematical formulation of the problem is:

IVP

where:

  • U_t = dU/dt;
  • U is the vector of state variables being a function of the time-like independent variable t;
  • R is the (vectorial) residual function;
  • F is the (vectorial) initial conditions function.

Such a mathematical formulation is ubiquitous in the mathematical modelling of physical problems. As a matter of facts, many physical problems (fluid dynamics, chemistry, biology, evolutionary-antropoly, etc...) are described as governed by a Partial Differential Equations (PDE) system the solution of which involves the integration of above ODE system.

FOODiE is designed to be a KISS (Keep It Simple and Stupid) library for the time-like integration of the above system of ODE. In particular, FOODiE provides high-level, well-documented, simple Application Program Interface (API) for many well-known ODE integration schemes.

Motivations

The web shows tons of Fortran libraries for ODE solving, thus why FOODiE? Essentially, because why not? we can... but a more conscious reason is

we would like to translate our mathematical/numerical models into computer-codes as easier as possible without compromise the computation efficiency.

The second part of the above statement (the efficiency) drives us to select Fortran as a programming language: we are scientist being not (necessarily) informatics-nerd, thus Fortran help us to translate maths in codes simply and efficiently. However, the available libraries for ODE solving are almost outdated, written in functional programming style and, in the best case, with the Fortran 95 standard. This approach limits the clearness and simplicity that we can now obtain developing a library in Fortran 2008+ standard by means of an Object Oriented Programming (OOP) approach.

We think that a modern OOP library for ODE integration can help scientist (chained to Fortran) to develop new numerical schemes faster, easier and clearer.

Clone this wiki locally