26 #include "blocksqp.hpp"
33 "This is a modified version of blockSQP by Janka et al.\n"
37 "Authors: Dennis Janka, Joel Andersson\n"
40 "Extra doc: https://github.com/casadi/casadi/wiki/L_224 \n"
43 ">List of available options\n"
45 "+----------------------------+-----------+---------------------------------+\n"
46 "| Id | Type | Description |\n"
47 "+============================+===========+=================================+\n"
48 "| block_hess | OT_INT | Blockwise Hessian |\n"
49 "| | | approximation? |\n"
50 "+----------------------------+-----------+---------------------------------+\n"
51 "| col_eps | OT_DOUBLE | Epsilon for COL scaling |\n"
53 "+----------------------------+-----------+---------------------------------+\n"
54 "| col_tau1 | OT_DOUBLE | tau1 for COL scaling strategy |\n"
55 "+----------------------------+-----------+---------------------------------+\n"
56 "| col_tau2 | OT_DOUBLE | tau2 for COL scaling strategy |\n"
57 "+----------------------------+-----------+---------------------------------+\n"
58 "| conv_strategy | OT_INT | Convexification strategy |\n"
59 "+----------------------------+-----------+---------------------------------+\n"
60 "| delta | OT_DOUBLE | Filter line search parameter, |\n"
61 "| | | cf. IPOPT paper |\n"
62 "+----------------------------+-----------+---------------------------------+\n"
63 "| delta_h0 | OT_DOUBLE | Filter line search parameter, |\n"
64 "| | | cf. IPOPT paper |\n"
65 "+----------------------------+-----------+---------------------------------+\n"
66 "| eps | OT_DOUBLE | Values smaller than this are |\n"
67 "| | | regarded as numerically zero |\n"
68 "+----------------------------+-----------+---------------------------------+\n"
69 "| eta | OT_DOUBLE | Filter line search parameter, |\n"
70 "| | | cf. IPOPT paper |\n"
71 "+----------------------------+-----------+---------------------------------+\n"
72 "| fallback_scaling | OT_INT | If indefinite update is used, |\n"
73 "| | | the type of fallback strategy |\n"
74 "+----------------------------+-----------+---------------------------------+\n"
75 "| fallback_update | OT_INT | If indefinite update is used, |\n"
76 "| | | the type of fallback strategy |\n"
77 "+----------------------------+-----------+---------------------------------+\n"
78 "| gamma_f | OT_DOUBLE | Filter line search parameter, |\n"
79 "| | | cf. IPOPT paper |\n"
80 "+----------------------------+-----------+---------------------------------+\n"
81 "| gamma_theta | OT_DOUBLE | Filter line search parameter, |\n"
82 "| | | cf. IPOPT paper |\n"
83 "+----------------------------+-----------+---------------------------------+\n"
84 "| globalization | OT_BOOL | Enable globalization |\n"
85 "+----------------------------+-----------+---------------------------------+\n"
86 "| hess_damp | OT_INT | Activate Powell damping for |\n"
88 "+----------------------------+-----------+---------------------------------+\n"
89 "| hess_damp_fac | OT_DOUBLE | Damping factor for BFGS Powell |\n"
90 "| | | modification |\n"
91 "+----------------------------+-----------+---------------------------------+\n"
92 "| hess_lim_mem | OT_INT | Full or limited memory |\n"
93 "+----------------------------+-----------+---------------------------------+\n"
94 "| hess_memsize | OT_INT | Memory size for L-BFGS updates |\n"
95 "+----------------------------+-----------+---------------------------------+\n"
96 "| hess_scaling | OT_INT | Scaling strategy for Hessian |\n"
97 "| | | approximation |\n"
98 "+----------------------------+-----------+---------------------------------+\n"
99 "| hess_update | OT_INT | Type of Hessian approximation |\n"
100 "+----------------------------+-----------+---------------------------------+\n"
101 "| ini_hess_diag | OT_DOUBLE | Initial Hessian guess: diagonal |\n"
102 "| | | matrix diag(iniHessDiag) |\n"
103 "+----------------------------+-----------+---------------------------------+\n"
104 "| kappa_f | OT_DOUBLE | Filter line search parameter, |\n"
105 "| | | cf. IPOPT paper |\n"
106 "+----------------------------+-----------+---------------------------------+\n"
107 "| kappa_minus | OT_DOUBLE | Filter line search parameter, |\n"
108 "| | | cf. IPOPT paper |\n"
109 "+----------------------------+-----------+---------------------------------+\n"
110 "| kappa_plus | OT_DOUBLE | Filter line search parameter, |\n"
111 "| | | cf. IPOPT paper |\n"
112 "+----------------------------+-----------+---------------------------------+\n"
113 "| kappa_plus_max | OT_DOUBLE | Filter line search parameter, |\n"
114 "| | | cf. IPOPT paper |\n"
115 "+----------------------------+-----------+---------------------------------+\n"
116 "| kappa_soc | OT_DOUBLE | Filter line search parameter, |\n"
117 "| | | cf. IPOPT paper |\n"
118 "+----------------------------+-----------+---------------------------------+\n"
119 "| linsol | OT_STRING | The linear solver to be used by |\n"
120 "| | | the QP method |\n"
121 "+----------------------------+-----------+---------------------------------+\n"
122 "| max_consec_reduced_steps | OT_INT | Maximum number of consecutive |\n"
123 "| | | reduced steps |\n"
124 "+----------------------------+-----------+---------------------------------+\n"
125 "| max_consec_skipped_updates | OT_INT | Maximum number of consecutive |\n"
126 "| | | skipped updates |\n"
127 "+----------------------------+-----------+---------------------------------+\n"
128 "| max_conv_qp | OT_INT | How many additional QPs may be |\n"
129 "| | | solved for convexification per |\n"
130 "| | | iteration? |\n"
131 "+----------------------------+-----------+---------------------------------+\n"
132 "| max_it_qp | OT_INT | Maximum number of QP iterations |\n"
133 "| | | per SQP iteration |\n"
134 "+----------------------------+-----------+---------------------------------+\n"
135 "| max_iter | OT_INT | Maximum number of SQP |\n"
136 "| | | iterations |\n"
137 "+----------------------------+-----------+---------------------------------+\n"
138 "| max_line_search | OT_INT | Maximum number of steps in line |\n"
140 "+----------------------------+-----------+---------------------------------+\n"
141 "| max_soc_iter | OT_INT | Maximum number of SOC line |\n"
142 "| | | search iterations |\n"
143 "+----------------------------+-----------+---------------------------------+\n"
144 "| max_time_qp | OT_DOUBLE | Maximum number of time in |\n"
145 "| | | seconds per QP solve per SQP |\n"
146 "| | | iteration |\n"
147 "+----------------------------+-----------+---------------------------------+\n"
148 "| nlinfeastol | OT_DOUBLE | Nonlinear feasibility tolerance |\n"
149 "+----------------------------+-----------+---------------------------------+\n"
150 "| obj_lo | OT_DOUBLE | Lower bound on objective |\n"
151 "| | | function [-inf] |\n"
152 "+----------------------------+-----------+---------------------------------+\n"
153 "| obj_up | OT_DOUBLE | Upper bound on objective |\n"
154 "| | | function [inf] |\n"
155 "+----------------------------+-----------+---------------------------------+\n"
156 "| opttol | OT_DOUBLE | Optimality tolerance |\n"
157 "+----------------------------+-----------+---------------------------------+\n"
158 "| print_header | OT_BOOL | Print solver header at startup |\n"
159 "+----------------------------+-----------+---------------------------------+\n"
160 "| print_iteration | OT_BOOL | Print SQP iterations |\n"
161 "+----------------------------+-----------+---------------------------------+\n"
162 "| print_maxit_reached | OT_BOOL | Print error when maximum number |\n"
163 "| | | of SQP iterations reached |\n"
164 "+----------------------------+-----------+---------------------------------+\n"
165 "| qp_init | OT_BOOL | Use warmstarting |\n"
166 "+----------------------------+-----------+---------------------------------+\n"
167 "| qpsol | OT_STRING | The QP solver to be used by the |\n"
168 "| | | SQP method |\n"
169 "+----------------------------+-----------+---------------------------------+\n"
170 "| qpsol_options | OT_DICT | Options to be passed to the QP |\n"
172 "+----------------------------+-----------+---------------------------------+\n"
173 "| restore_feas | OT_BOOL | Use feasibility restoration |\n"
175 "+----------------------------+-----------+---------------------------------+\n"
176 "| rho | OT_DOUBLE | Feasibility restoration phase |\n"
177 "| | | parameter |\n"
178 "+----------------------------+-----------+---------------------------------+\n"
179 "| s_f | OT_DOUBLE | Filter line search parameter, |\n"
180 "| | | cf. IPOPT paper |\n"
181 "+----------------------------+-----------+---------------------------------+\n"
182 "| s_theta | OT_DOUBLE | Filter line search parameter, |\n"
183 "| | | cf. IPOPT paper |\n"
184 "+----------------------------+-----------+---------------------------------+\n"
185 "| schur | OT_BOOL | Use qpOASES Schur compliment |\n"
187 "+----------------------------+-----------+---------------------------------+\n"
188 "| skip_first_globalization | OT_BOOL | No globalization strategy in |\n"
189 "| | | first iteration |\n"
190 "+----------------------------+-----------+---------------------------------+\n"
191 "| theta_max | OT_DOUBLE | Filter line search parameter, |\n"
192 "| | | cf. IPOPT paper |\n"
193 "+----------------------------+-----------+---------------------------------+\n"
194 "| theta_min | OT_DOUBLE | Filter line search parameter, |\n"
195 "| | | cf. IPOPT paper |\n"
196 "+----------------------------+-----------+---------------------------------+\n"
197 "| warmstart | OT_BOOL | Use warmstarting |\n"
198 "+----------------------------+-----------+---------------------------------+\n"
199 "| which_second_derv | OT_INT | For which block should second |\n"
200 "| | | derivatives be provided by the |\n"
202 "+----------------------------+-----------+---------------------------------+\n"
203 "| zeta | OT_DOUBLE | Feasibility restoration phase |\n"
204 "| | | parameter |\n"
205 "+----------------------------+-----------+---------------------------------+\n"
static const std::string meta_doc
A documentation string.