First off, thank you for making OSQP available as open source. We’ve recently started to experiment with it for use with some contact finite element problems, and for our first few (small-scale) tests it has worked very well. However, we have one issue: the results produced are not reproducible in the sense that if we re-run the same program several times, the results are not the same. When coupling this with relatively loose tolerances (which is desirable), we can observe wildly different behavior in our simulations between runs (due to the inherent sensitivity to perturbations in the contact problems).
From reading the OSQP paper, we suspect that perhaps this non-determinism comes from the fact that the decision of whether or not to re-compute a factorization depends on the time elapsed. Is this right? Are there also other significant sources of non-determinism? And what can we do about them? It seems that the setting
adaptive_rho_fraction is relevant here, but it’s not entirely clear if we can disable this behavior.
We are using the Rust bindings, if this matters.
This seems tangentially related to what was discussed in this forum post, but our problem is rerunning the same application with the exact same problem, not reusing the solver across different but related problems.