26 #ifndef CASADI_FATROP_INTERFACE_HPP
27 #define CASADI_FATROP_INTERFACE_HPP
29 #include <casadi/interfaces/fatrop/casadi_nlpsol_fatrop_export.h>
30 #include "casadi/core/nlpsol_impl.hpp"
31 #include "casadi/core/timing.hpp"
32 #include <fatrop/ocp/OCPAbstract.hpp>
33 #include <fatrop/ocp/StageOCPApplication.hpp>
34 #include <fatrop/ocp/OCPCInterface.h>
37 #include "fatrop_runtime.hpp"
110 std::string
class_name()
const override {
return "FatropInterface";}
124 void init(
const Dict& opts)
override;
130 int init_mem(
void* mem)
const override;
133 void free_mem(
void *mem)
const override;
136 Dict get_stats(
void* mem)
const override;
139 void set_work(
void* mem,
const double**& arg,
double**& res,
140 casadi_int*& iw,
double*& w)
const override;
143 int solve(
void* mem)
const override;
162 void set_fatrop_prob();
194 static Sparsity blocksparsity(casadi_int rows, casadi_int cols,
195 const std::vector<casadi_ocp_block>& blocks,
bool eye=
false);
196 static void blockptr(std::vector<double *>& vs, std::vector<double>& v,
197 const std::vector<casadi_ocp_block>& blocks,
bool eye=
false);
198 Sparsity Isp_, ABsp_, CDsp_, RSQsp_;
200 std::vector< casadi_ocp_block > AB_blocks_, CD_blocks_, RSQ_blocks_, I_blocks_;
202 std::vector<casadi_int> nxs_;
203 std::vector<casadi_int> nus_;
204 std::vector<casadi_int> ngs_;
208 enum StructureDetection {
213 StructureDetection structure_detection_;
215 std::vector<casadi_int> AB_offsets_, CD_offsets_, RSQ_offsets_, I_offsets_;
Helper class for C code generation.
Helper class for Serialization.
'fatrop' plugin for Nlpsol
void * alloc_mem() const override
Create memory block.
const Options & get_options() const override
Options.
const char * plugin_name() const override
Dict opts_
All FATROP options.
bool convexify_
convexify?
static ProtoFunction * deserialize(DeserializingStream &s)
Deserialize into MX.
std::string codegen_mem_type() const override
Thread-local memory object type.
ConvexifyData convexify_data_
Data for convexification.
std::string class_name() const override
Get type name.
static const Options options_
Options.
static const std::string meta_doc
A documentation string.
bool exact_hessian_
Exact Hessian?
static Nlpsol * creator(const std::string &name, const Function &nlp)
Create a new NLP Solver.
NLP solver storage class.
Base class for FunctionInternal and LinsolInternal.
Helper class for Serialization.
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.
casadi_fatrop_data< double > d
Options metadata for a class.