SKopecz / PositiveIntegrators.jl

A Julia library of positivity-preserving time integration methods
https://skopecz.github.io/PositiveIntegrators.jl/
MIT License
13 stars 4 forks source link

Implement positivity favoring Rosenbrock schemes of Sandu with addtional projection method #124

Open SKopecz opened 1 month ago

SKopecz commented 1 month ago

In https://doi.org/10.1006/jcph.2001.6750 Sandu describes a method to project a negative approximation back to the reaction simplex without sacrificing accuracy.

SKopecz commented 1 month ago

The reaction step requires the solution of a quadratic optimization problem

$$\min \frac12\lVert z^{n+1} - y^{n+1}\rVert^2$$ subject to $$A^Tz^{n+1}=b,\quad z^{n+1}\geq 0$$,

where $$y^{n+1}$$ is an approximation with negative elements and $$z^{n+1}$$ is the approximation we seek.

@ranocha Any idea how this is best solved in Julia?

I found the discussion https://discourse.julialang.org/t/how-to-solve-a-large-quadratic-programming-problem/111200 which recommends RipQp.jl

ranocha commented 1 month ago

I haven't used quadratic programming with inequality constraints in Julai so far. But I agree with you, RipQP.jl seems to be worth a try.

ranocha commented 1 month ago

https://github.com/oxfordcontrol/Clarabel.jl could be worth looking at, too