Modelling interface to non-linear constrained optimisation.
This module exposes more than the typical user will want to use (so that
other crates such as the
descent_ipopt crate can interface to it). The
most relevant parts of this module are:
- Model trait that solvers implement.
- Var type that represents a model variable.
- Par type that represents a model parameter.
- Expression most general type of expression for modelling constraints and objectives.
- Solution type that stores and enables access to a solution.
If you have nightly rust available, then the "fixed" form expressions that have their first and second derivatives generated by a procedural macro is the most performant approach to writing expressions. See the fixed sub-module.
For greater runtime flexibility in constructing of expressions, use the "dynamic" expressions instead in the dynam sub-module.
Both types of expression can be used with the same model but not in the same objective value or constriant.
To get started writing and solving non-linear programs with IPOPT, go
straight to the examples in the
Expression, variable and parameter modelling.
Model interface for solvers.