MadNLP solver

MadNLP takes as input a nonlinear program encoded as a AbstractNLPModel and solve it using interior-point. The main entry point is the function madnlp:

MadNLP.MadNLPExecutionStatsType
MadNLPExecutionStats{T, VT} <: AbstractExecutionStats

Store the results returned by MadNLP once the interior-point algorithm has terminated.

source

In detail, the function madnlp builds a MadNLPSolver storing all the required structures in the solution algorithm. Once the MadNLPSolver instantiated, the function solve! is applied to solve the nonlinear program with MadNLP's interior-point algorithm.

MadNLP.MadNLPSolverType
MadNLPSolver(nlp::AbstractNLPModel{T, VT}; options...) where {T, VT}

Instantiate a new MadNLPSolver associated to the nonlinear program nlp::AbstractNLPModel. The options are passed as optional arguments.

The constructor allocates all the memory required in the interior-point algorithm, so the main algorithm remains allocation free.

source
MadNLP.solve!Function
solve!(
    solver::AbstractMadNLPSolver,
    stats::MadNLPExecutionStats;
    kwargs...
)

Solve the problem formulated inside solver. Return the solution in stats by modifying inplace the values. The options are specified in kwargs.

source

Users can also define a termination criteria by using the intermediate_callback solver option. Besides termination, this is also useful for accessing the internal state of the solver and custom logging.