Skip to content

WIP: CVODE-like Implicit Integration

Cory Mikida requested to merge cory-cvode into master

Currently contains a first pass at CVODE-like integration with Leap/Dagrt, which presents a few issues, namely:

  • Turning while loops into phases induces requirement that a lot of data be persistent between phases. This persistent data ranges from state-sized arrays (correction vector, error weights) to scalars and flags.
  • Given the presence of a few nested while loops in CVODE's control flow, this effect compounds fairly quickly.
  • A number of for-loops possess order-dependent limits, and given that CVODE is a variable-order adaptive integrator this won't fly with code generation.
  • The above issue could potentially be mitigated with different phases for each order (given that the set of orders CVODE integrates at is finite), but then we'd have a preponderance of phases that I think would obfuscate the code considerably.

Merge request reports

Loading