rosenbrock_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 "rosenbrock.hpp"
27  #include <string>
28 
29  const std::string casadi::Rosenbrock::meta_doc=
30  "\n"
31 "\n"
32 "\n"
33 "Rosenbrock-Wanner integrator for stiff ODEs and semi-explicit index-1\n"
34 " DAEs, with adaptive or fixed steps.\n"
35 "\n"
36 "An 8-stage, stiffly accurate, L-stable method of order 5 with an \n"
37 "embedded method of order 4. Each step needs one Jacobian and one \n"
38 "sparse QR factorization; the method is linearly implicit, without \n"
39 "Newton iterations. Steps cross the output times within a control \n"
40 "group, which are interpolated by a dense output of order 4. Step sizes\n"
41 " are chosen from the nominal solution only, so forward sensitivities \n"
42 "are the exact derivatives of the discrete solution (internal numerical\n"
43 " differentiation) and adjoint sensitivities are the exact discrete \n"
44 "adjoint of the taped steps. With step_size, each run of steps over a \n"
45 "control group is divided into equal steps instead, and the tape has a \n"
46 "known bound.\n"
47 "\n"
48 "Zero-crossing events (DAE output zero, option transition) are located \n"
49 "on the dense output of the step in which a function becomes negative; \n"
50 "integration restarts from the state after the transition. \n"
51 "Sensitivities, forward, adjoint and forward-over-adjoint, include \n"
52 "those of the event times.\n"
53 "\n"
54 "Extra doc: https://github.com/casadi/casadi/wiki/L_2ka \n"
55 "\n"
56 "\n"
57 ">List of available options\n"
58 "\n"
59 "+--------------------+--------------+--------------------------------------+\n"
60 "| Id | Type | Description |\n"
61 "+====================+==============+======================================+\n"
62 "| abstol | OT_DOUBLE | Absolute tolerance [1e-8] |\n"
63 "+--------------------+--------------+--------------------------------------+\n"
64 "| control_group_size | OT_INTVECTOR | Number of output intervals in each |\n"
65 "| | | control group, over which the |\n"
66 "| | | controls, one column each, are |\n"
67 "| | | constant: a run of steps [default: 1 |\n"
68 "| | | for each output interval] |\n"
69 "+--------------------+--------------+--------------------------------------+\n"
70 "| init_max_iter | OT_INT | Maximum number of Newton iterations |\n"
71 "| | | for consistent algebraic states [20] |\n"
72 "+--------------------+--------------+--------------------------------------+\n"
73 "| init_tol | OT_DOUBLE | Tolerance on the scaled Newton step |\n"
74 "| | | when making the algebraic states |\n"
75 "| | | consistent [1e-3] |\n"
76 "+--------------------+--------------+--------------------------------------+\n"
77 "| max_num_steps | OT_INT | Adaptive steps: maximum number of |\n"
78 "| | | steps per output interval [10000] |\n"
79 "+--------------------+--------------+--------------------------------------+\n"
80 "| max_step_size | OT_DOUBLE | Adaptive steps: maximum step size |\n"
81 "| | | [default: unbounded] |\n"
82 "+--------------------+--------------+--------------------------------------+\n"
83 "| max_tape_steps | OT_INT | Adaptive steps: capacity, in steps, |\n"
84 "| | | of a tape in the work vector, for |\n"
85 "| | | adjoint sensitivities; needed for |\n"
86 "| | | code generation [0: tape of |\n"
87 "| | | unbounded size]. With fixed steps, |\n"
88 "| | | the tape is sized exactly. |\n"
89 "+--------------------+--------------+--------------------------------------+\n"
90 "| min_step_size | OT_DOUBLE | Adaptive steps: minimum step size |\n"
91 "| | | [1e-14] |\n"
92 "+--------------------+--------------+--------------------------------------+\n"
93 "| quad_err_con | OT_BOOL | Adaptive steps: include the |\n"
94 "| | | quadratures in the error control |\n"
95 "| | | [true] |\n"
96 "+--------------------+--------------+--------------------------------------+\n"
97 "| reltol | OT_DOUBLE | Relative tolerance [1e-6] |\n"
98 "+--------------------+--------------+--------------------------------------+\n"
99 "| step0 | OT_DOUBLE | Adaptive steps: initial step size |\n"
100 "| | | [default: estimated] |\n"
101 "+--------------------+--------------+--------------------------------------+\n"
102 "| step_size | OT_DOUBLE | Fixed steps: each run of steps, over |\n"
103 "| | | a control group or up to the end |\n"
104 "| | | without controls, is divided into |\n"
105 "| | | equal steps of at most step_size [0: |\n"
106 "| | | adaptive steps] |\n"
107 "+--------------------+--------------+--------------------------------------+\n"
108 "\n"
109 "\n"
110 "\n"
111 "\n"
112 ;
static const std::string meta_doc
A documentation string.
Definition: rosenbrock.hpp:111