OrdinaryDiffEq.jl icon indicating copy to clipboard operation
OrdinaryDiffEq.jl copied to clipboard

New Rosenbrock-type methods of Sandu that favor positivity for chemical reactions

Open ranocha opened this issue 2 years ago • 4 comments

See Sandu (2000) Time stepping methods that favor positivity for atmospheric chemistry modeling. There are four methods

  • A: three-stage, second-order, stiffly accurate, allowing inexact Jacobians
  • B: three-stage, second-order, stiffly accurate, one order 3 condition satisfied
  • C: three-stage, second-order, allowing inexact Jacobians, one order 3 condition satisfied
  • D: four-stage, second-order, stiffly accurate, allowing inexact Jacobians, with an embedded method of order 3

ranocha avatar Dec 19 '23 06:12 ranocha

any successions of how one should name the methods when implementing? Just Sandu2A, Sandau2B, ...?

cwittens avatar Feb 10 '24 20:02 cwittens

I just realized that Methods A-C don't have an embedded method. Does it still make sense to implement them? And method D has an embedded method, but it took ~2000 steps to solve u' = 1.01u between (0,1)

After some changing btilde from [8/3, 1, 1, -1/3] to [0, 0, 0, 1] (originally to check for an potential error/bug), I got it down to 15 steps, but this change seems quite arbitrary. Besides from checking again for potential errors in the implementation, I am not sure how to proceed.

And ROS2 is also given in this paper and it has the same coefficients as in https://github.com/SciML/OrdinaryDiffEq.jl/issues/2112 (and with this the same as in KPP), only the embedded methods is different from the one in KPP. I am thinking of implementing both and checking if both give reasonable solutions.

cwittens avatar Feb 10 '24 21:02 cwittens

It's fine, those ones just won't be adaptive.

ChrisRackauckas avatar Feb 11 '24 03:02 ChrisRackauckas

Thanks, that would be nice 👍

ranocha avatar Feb 13 '24 08:02 ranocha