Skip to content
Stefano Zaghi edited this page Sep 15, 2015 · 4 revisions

FOODiE has many features, here the main ones are listed.

  • Pure Fortran implementation;
  • KISS and user-friendly:
    • simple API, presently based on the Rouson's Abstract Data Type Pattern [1];
    • easy building and porting on heterogeneous architectures;
  • comprehensive:
    • explicit Euler scheme, 1st order accurate;
    • explicit Runge-Kutta schemes:
      • TVD or SSP schemes, see [2]:
        • 1 stage, namely the forward explicit Euler scheme, 1st order accurate;
        • 2 stages, 2nd order accurate;
        • 3 stages, 3rd order accurate;
        • 4 stages;
        • 5 stages, 4th order accurate;
    • implicit Runge-Kutta schemes;
    • low-storage explicit schemes, see [2,3,3];
    • Leapfrog, 2nd order accurate:
      • Robert-Asselin filter, for stability and leapfrog, 1st order accurate;
      • Robert-Asselin-Williams filter, for stability and leapfrog, 3rd order accurate;
    • Adams-Bashforth variants of 2nd and 3rd order accurate;
  • efficient:
    • high scalability on parallel architectures:
      • support for shared memory multi/many cores architecture;
      • support for distributed memory cluster;
      • support for GPGPU/accelerators device;
  • Tests-Driven Developed (TDD):
  • well documented:
    • clear documentation of schemes implementations;
    • complete API reference;
    • comprehensive wiki:
  • collaborative developed;
  • FOSS licensed;
Clone this wiki locally