26 #include "blocksqp.hpp"
33 "This is a modified version of blockSQP by Janka et al.\n"
36 "Dennis Janka, Joel Andersson \n"
38 "Extra doc: https://github.com/casadi/casadi/wiki/L_224 \n"
41 ">List of available options\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"
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"
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"
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"
170 "+----------------------------+-----------+---------------------------------+\n"
171 "| restore_feas | OT_BOOL | Use feasibility restoration |\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"
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"
200 "+----------------------------+-----------+---------------------------------+\n"
201 "| zeta | OT_DOUBLE | Feasibility restoration phase |\n"
202 "| | | parameter |\n"
203 "+----------------------------+-----------+---------------------------------+\n"
static const std::string meta_doc
A documentation string.