1
$\begingroup$

I have a finite element project based on deal.II and cmake/make as build system.

I am aware of popular libraries such as deal.II, trilinos, petsc, mumps, superlu_dist,... to solve large sparse linear systems $Cx=d$.

However, for some preprocessing tasks, I am looking for packages that allow me to solve $Cx = d$ subject to $Ax \leq b$ (linear inequality constraints) or $Ax=b$ (linear equality constraints) or $l_b < x < u_b$ (bound constraints).

Those systems can be easily solved, for instance, in matlab using lsqlin function. But I am not aware of open-source C++ libraries with that capability. NLopt, gsl,... they do not offer handling bounds or linear constraints on the parameters.

$\endgroup$
1

1 Answer 1

1
$\begingroup$

deal.II has a tutorial showing how to solve the obstacle problem, which has one-sided bounds constraints, using an active set approach. PETSc also has a variational inequality solver SNESVINEWTONRSLS and they also have a tutorial showing how to use it. For simple bounds constraints these should work fine; for constraints of the form $Ax \le b$, it's likely that you'll need to reformulate this using a slack variable $s$ as $Ax + s = b$ with the constraint $s \ge 0$.

If you need something quick and dirty but possibly inexact you can also try a proximal method.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.