Skip to content

simnba/COLDAEpp

Repository files navigation

test workflow

Coldae++

Coldae++ is a C++ port of NetLib's COLDAE.

COLDAE uses a collocation (COL) method to solve semi-explicit differential-algebraic equations (DAE) of the form

The original Fortran 77 code by Uri Ascher and Ray Spiteri is available on Netlib.

How to use it

  • Initialize the {fmt} submodule : git submodule update --init --recursive
  • #include "ColDAEpp.hpp"
  • Derive a class from coldae::system and provide the subroutines. (see test\systems.hpp)
  • Create a coldae::solver instance and call COLDAE() on it. The parameters have the same meaning as in the original. (see test\test.hpp)

Benchmark

The C++ version takes about 20% less time than the original version but much more memory.