Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using a Julia linear system solver? #105

Open
baggepinnen opened this issue Feb 16, 2022 · 1 comment
Open

Using a Julia linear system solver? #105

baggepinnen opened this issue Feb 16, 2022 · 1 comment

Comments

@baggepinnen
Copy link

Hello and thanks for this awesome package! This is more of a question than an issue, I'd be interested in the feasibility of using a linear system solver implemented in Julia with OSQP. Has anyone explored or thought about his? The docs indicate that implementing new solvers should be doable by writing a C wrapper? I notice that the docs talk about

subfolder direct/ or indirect/ depending on the type of solver.

but the subfolder indeirect does not appear to exist. I'd be primarily interested in adding an iterative solver to experiment with fast re-factorization (warmstarting of the factorization step) for nonlinear MPC (if you have any insights into this particular idea, those would be very welcome as well :).

@imciner2
Copy link
Member

I have toyed with the idea of exposing this, but haven't quite figured out the API that would be best to use at the C library level to allow user-supplied linear system solvers to be registered (all the calls to the linear system already go through function pointers, so it is just the registration step that is the bottleneck currently).

That said, I am not sure if warm starting the factorization step would be very useful with OSQP. Even if you only update part of the matrices, the KKT matrix is passed through an equilibration step and the scalings are re-calculated after the matrices are updated. This means that just updating one entry in a data matrix could lead to more entries in the KKT matrix changing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants