dolfinx_optim
documentation#
See also
This project is a rewrite of the fenics_optim
package working with the legacy FEniCS version.
Introduction#
dolfinx_optim
is a convex optimization add-on package to the FEniCSx
finite-element library. It provides a simple Domain-Specific Language through FEniCSx dolfinx
Python interface for solving convex optimization problems. In particular, it relies on the Mosek
mathematical programming library. Mosek
provides a state-of-the art interior-point solver for linear programming (LP), convex quadratic programming (QP), second-order conic programming (SOCP) and semi-definite programming (SDP).
Github repository: bleyerj/dolfinx_optim
Online documentation: https://bleyerj.github.io/dolfinx_optim/
Prerequisites#
dolfinx_optim requires:
FEniCSx (v.0.8), see installation instructions here.
MOSEK (>= version 10 with its Python Fusion interface), see installation instructions here. The Python interface can be simply installed via
pip
:
pip install -f https://download.mosek.com/stable/wheel/index.html Mosek
Mosek is a commercial software so users need a valid Mosek license. Free unlimited licenses are available for education and research purposes, see the Academic License section.
Installation and usage#
Simply clone the dolfinx_optim
public repository
https://github.com/bleyerj/dolfinx_optim
and install the package by typing
pip install dolfinx_optim/ --user
Features#
Current version supports variational problem formulations resulting in Linear Programs, Second-Order Cone Programs, Semi-Definite Programs and Power or Exponential cone programs.
License#
All this work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License .
Citing#
Papers related to this project can be cited as:
@article{bleyer2020automating,
title={Automating the formulation and resolution of convex variational problems: applications from image processing to computational mechanics},
author={Bleyer, Jeremy},
journal={ACM Transactions on Mathematical Software (TOMS)},
volume={46},
number={3},
pages={1--33},
year={2020},
publisher={ACM New York, NY, USA}
}
@article{bleyer2022applications,
title={Applications of conic programming in non-smooth mechanics},
author={Bleyer, Jeremy},
journal={Journal of Optimization Theory and Applications},
pages={1--33},
year={2022},
publisher={Springer}
}