blocksqp_meta.cpp
1 /*
2  * This file is part of CasADi.
3  *
4  * CasADi -- A symbolic framework for dynamic optimization.
5  * Copyright (C) 2010-2023 Joel Andersson, Joris Gillis, Moritz Diehl,
6  * KU Leuven. All rights reserved.
7  * Copyright (C) 2011-2014 Greg Horn
8  *
9  * CasADi is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Lesser General Public
11  * License as published by the Free Software Foundation; either
12  * version 3 of the License, or (at your option) any later version.
13  *
14  * CasADi is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with CasADi; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22  *
23  */
24 
25 
26  #include "blocksqp.hpp"
27  #include <string>
28 
29  const std::string casadi::Blocksqp::meta_doc=
30  "\n"
31 "\n"
32 "\n"
33 "This is a modified version of blockSQP by Janka et al.\n"
34 "\n"
35 "\n"
36 "Dennis Janka, Joel Andersson \n"
37 "\n"
38 "Extra doc: https://github.com/casadi/casadi/wiki/L_224 \n"
39 "\n"
40 "\n"
41 ">List of available options\n"
42 "\n"
43 "+----------------------------+-----------+---------------------------------+\n"
44 "| Id | Type | Description |\n"
45 "+============================+===========+=================================+\n"
46 "| block_hess | OT_INT | Blockwise Hessian |\n"
47 "| | | approximation? |\n"
48 "+----------------------------+-----------+---------------------------------+\n"
49 "| col_eps | OT_DOUBLE | Epsilon for COL scaling |\n"
50 "| | | strategy |\n"
51 "+----------------------------+-----------+---------------------------------+\n"
52 "| col_tau1 | OT_DOUBLE | tau1 for COL scaling strategy |\n"
53 "+----------------------------+-----------+---------------------------------+\n"
54 "| col_tau2 | OT_DOUBLE | tau2 for COL scaling strategy |\n"
55 "+----------------------------+-----------+---------------------------------+\n"
56 "| conv_strategy | OT_INT | Convexification strategy |\n"
57 "+----------------------------+-----------+---------------------------------+\n"
58 "| delta | OT_DOUBLE | Filter line search parameter, |\n"
59 "| | | cf. IPOPT paper |\n"
60 "+----------------------------+-----------+---------------------------------+\n"
61 "| delta_h0 | OT_DOUBLE | Filter line search parameter, |\n"
62 "| | | cf. IPOPT paper |\n"
63 "+----------------------------+-----------+---------------------------------+\n"
64 "| eps | OT_DOUBLE | Values smaller than this are |\n"
65 "| | | regarded as numerically zero |\n"
66 "+----------------------------+-----------+---------------------------------+\n"
67 "| eta | OT_DOUBLE | Filter line search parameter, |\n"
68 "| | | cf. IPOPT paper |\n"
69 "+----------------------------+-----------+---------------------------------+\n"
70 "| fallback_scaling | OT_INT | If indefinite update is used, |\n"
71 "| | | the type of fallback strategy |\n"
72 "+----------------------------+-----------+---------------------------------+\n"
73 "| fallback_update | OT_INT | If indefinite update is used, |\n"
74 "| | | the type of fallback strategy |\n"
75 "+----------------------------+-----------+---------------------------------+\n"
76 "| gamma_f | OT_DOUBLE | Filter line search parameter, |\n"
77 "| | | cf. IPOPT paper |\n"
78 "+----------------------------+-----------+---------------------------------+\n"
79 "| gamma_theta | OT_DOUBLE | Filter line search parameter, |\n"
80 "| | | cf. IPOPT paper |\n"
81 "+----------------------------+-----------+---------------------------------+\n"
82 "| globalization | OT_BOOL | Enable globalization |\n"
83 "+----------------------------+-----------+---------------------------------+\n"
84 "| hess_damp | OT_INT | Activate Powell damping for |\n"
85 "| | | BFGS |\n"
86 "+----------------------------+-----------+---------------------------------+\n"
87 "| hess_damp_fac | OT_DOUBLE | Damping factor for BFGS Powell |\n"
88 "| | | modification |\n"
89 "+----------------------------+-----------+---------------------------------+\n"
90 "| hess_lim_mem | OT_INT | Full or limited memory |\n"
91 "+----------------------------+-----------+---------------------------------+\n"
92 "| hess_memsize | OT_INT | Memory size for L-BFGS updates |\n"
93 "+----------------------------+-----------+---------------------------------+\n"
94 "| hess_scaling | OT_INT | Scaling strategy for Hessian |\n"
95 "| | | approximation |\n"
96 "+----------------------------+-----------+---------------------------------+\n"
97 "| hess_update | OT_INT | Type of Hessian approximation |\n"
98 "+----------------------------+-----------+---------------------------------+\n"
99 "| ini_hess_diag | OT_DOUBLE | Initial Hessian guess: diagonal |\n"
100 "| | | matrix diag(iniHessDiag) |\n"
101 "+----------------------------+-----------+---------------------------------+\n"
102 "| kappa_f | OT_DOUBLE | Filter line search parameter, |\n"
103 "| | | cf. IPOPT paper |\n"
104 "+----------------------------+-----------+---------------------------------+\n"
105 "| kappa_minus | OT_DOUBLE | Filter line search parameter, |\n"
106 "| | | cf. IPOPT paper |\n"
107 "+----------------------------+-----------+---------------------------------+\n"
108 "| kappa_plus | OT_DOUBLE | Filter line search parameter, |\n"
109 "| | | cf. IPOPT paper |\n"
110 "+----------------------------+-----------+---------------------------------+\n"
111 "| kappa_plus_max | OT_DOUBLE | Filter line search parameter, |\n"
112 "| | | cf. IPOPT paper |\n"
113 "+----------------------------+-----------+---------------------------------+\n"
114 "| kappa_soc | OT_DOUBLE | Filter line search parameter, |\n"
115 "| | | cf. IPOPT paper |\n"
116 "+----------------------------+-----------+---------------------------------+\n"
117 "| linsol | OT_STRING | The linear solver to be used by |\n"
118 "| | | the QP method |\n"
119 "+----------------------------+-----------+---------------------------------+\n"
120 "| max_consec_reduced_steps | OT_INT | Maximum number of consecutive |\n"
121 "| | | reduced steps |\n"
122 "+----------------------------+-----------+---------------------------------+\n"
123 "| max_consec_skipped_updates | OT_INT | Maximum number of consecutive |\n"
124 "| | | skipped updates |\n"
125 "+----------------------------+-----------+---------------------------------+\n"
126 "| max_conv_qp | OT_INT | How many additional QPs may be |\n"
127 "| | | solved for convexification per |\n"
128 "| | | iteration? |\n"
129 "+----------------------------+-----------+---------------------------------+\n"
130 "| max_it_qp | OT_INT | Maximum number of QP iterations |\n"
131 "| | | per SQP iteration |\n"
132 "+----------------------------+-----------+---------------------------------+\n"
133 "| max_iter | OT_INT | Maximum number of SQP |\n"
134 "| | | iterations |\n"
135 "+----------------------------+-----------+---------------------------------+\n"
136 "| max_line_search | OT_INT | Maximum number of steps in line |\n"
137 "| | | search |\n"
138 "+----------------------------+-----------+---------------------------------+\n"
139 "| max_soc_iter | OT_INT | Maximum number of SOC line |\n"
140 "| | | search iterations |\n"
141 "+----------------------------+-----------+---------------------------------+\n"
142 "| max_time_qp | OT_DOUBLE | Maximum number of time in |\n"
143 "| | | seconds per QP solve per SQP |\n"
144 "| | | iteration |\n"
145 "+----------------------------+-----------+---------------------------------+\n"
146 "| nlinfeastol | OT_DOUBLE | Nonlinear feasibility tolerance |\n"
147 "+----------------------------+-----------+---------------------------------+\n"
148 "| obj_lo | OT_DOUBLE | Lower bound on objective |\n"
149 "| | | function [-inf] |\n"
150 "+----------------------------+-----------+---------------------------------+\n"
151 "| obj_up | OT_DOUBLE | Upper bound on objective |\n"
152 "| | | function [inf] |\n"
153 "+----------------------------+-----------+---------------------------------+\n"
154 "| opttol | OT_DOUBLE | Optimality tolerance |\n"
155 "+----------------------------+-----------+---------------------------------+\n"
156 "| print_header | OT_BOOL | Print solver header at startup |\n"
157 "+----------------------------+-----------+---------------------------------+\n"
158 "| print_iteration | OT_BOOL | Print SQP iterations |\n"
159 "+----------------------------+-----------+---------------------------------+\n"
160 "| print_maxit_reached | OT_BOOL | Print error when maximum number |\n"
161 "| | | of SQP iterations reached |\n"
162 "+----------------------------+-----------+---------------------------------+\n"
163 "| qp_init | OT_BOOL | Use warmstarting |\n"
164 "+----------------------------+-----------+---------------------------------+\n"
165 "| qpsol | OT_STRING | The QP solver to be used by the |\n"
166 "| | | SQP method |\n"
167 "+----------------------------+-----------+---------------------------------+\n"
168 "| qpsol_options | OT_DICT | Options to be passed to the QP |\n"
169 "| | | solver |\n"
170 "+----------------------------+-----------+---------------------------------+\n"
171 "| restore_feas | OT_BOOL | Use feasibility restoration |\n"
172 "| | | phase |\n"
173 "+----------------------------+-----------+---------------------------------+\n"
174 "| rho | OT_DOUBLE | Feasibility restoration phase |\n"
175 "| | | parameter |\n"
176 "+----------------------------+-----------+---------------------------------+\n"
177 "| s_f | OT_DOUBLE | Filter line search parameter, |\n"
178 "| | | cf. IPOPT paper |\n"
179 "+----------------------------+-----------+---------------------------------+\n"
180 "| s_theta | OT_DOUBLE | Filter line search parameter, |\n"
181 "| | | cf. IPOPT paper |\n"
182 "+----------------------------+-----------+---------------------------------+\n"
183 "| schur | OT_BOOL | Use qpOASES Schur compliment |\n"
184 "| | | approach |\n"
185 "+----------------------------+-----------+---------------------------------+\n"
186 "| skip_first_globalization | OT_BOOL | No globalization strategy in |\n"
187 "| | | first iteration |\n"
188 "+----------------------------+-----------+---------------------------------+\n"
189 "| theta_max | OT_DOUBLE | Filter line search parameter, |\n"
190 "| | | cf. IPOPT paper |\n"
191 "+----------------------------+-----------+---------------------------------+\n"
192 "| theta_min | OT_DOUBLE | Filter line search parameter, |\n"
193 "| | | cf. IPOPT paper |\n"
194 "+----------------------------+-----------+---------------------------------+\n"
195 "| warmstart | OT_BOOL | Use warmstarting |\n"
196 "+----------------------------+-----------+---------------------------------+\n"
197 "| which_second_derv | OT_INT | For which block should second |\n"
198 "| | | derivatives be provided by the |\n"
199 "| | | user |\n"
200 "+----------------------------+-----------+---------------------------------+\n"
201 "| zeta | OT_DOUBLE | Feasibility restoration phase |\n"
202 "| | | parameter |\n"
203 "+----------------------------+-----------+---------------------------------+\n"
204 "\n"
205 "\n"
206 "\n"
207 "\n"
208 ;
static const std::string meta_doc
A documentation string.
Definition: blocksqp.hpp:193