numerical-collection-cpp 0.10.0
A collection of algorithms in numerical analysis implemented in C++
|
Class of RODASPR formula [23] for Rosenbrock method. More...
#include <num_collect/ode/rosenbrock/rodaspr_formula.h>
Public Types | |
using | base_type |
Type of base class. | |
using | equation_solver_type |
Type of class to solve equations in Rosenbrock methods. | |
Public Types inherited from num_collect::ode::rosenbrock::rosenbrock_formula_base< Derived, Problem, EquationSolver > | |
using | base_type = formula_base<Derived, Problem> |
Type of base class. | |
using | equation_solver_type = EquationSolver |
Type of class to solve equations in Rosenbrock methods. | |
using | problem_type |
Type of problem. | |
using | scalar_type |
Type of scalars. | |
using | variable_type |
Type of variables. | |
Public Types inherited from num_collect::ode::formula_base< Derived, Problem > | |
using | problem_type = Problem |
Type of problem. | |
using | scalar_type = typename problem_type::scalar_type |
Type of scalars. | |
using | variable_type = typename problem_type::variable_type |
Type of variables. | |
Public Member Functions | |
rodaspr_formula (const problem_type &problem) | |
Constructor. | |
auto | equation_solver () -> equation_solver_type & |
Access the solver of equations in Rosenbrock methods. | |
auto | equation_solver () const -> const equation_solver_type & |
Access the solver of equations in Rosenbrock methods. | |
void | step (scalar_type time, scalar_type step_size, const variable_type ¤t, variable_type &estimate) |
Compute the next variable. | |
void | step_embedded (scalar_type time, scalar_type step_size, const variable_type ¤t, variable_type &estimate, variable_type &error) |
Compute the next variable and weak estimate of it with embedded formula. | |
Public Member Functions inherited from num_collect::ode::rosenbrock::rosenbrock_formula_base< Derived, Problem, EquationSolver > | |
rosenbrock_formula_base (const problem_type &problem, const scalar_type &inverted_jacobian_coeff) | |
Constructor. | |
auto | equation_solver () -> equation_solver_type & |
Access the solver of equations in Rosenbrock methods. | |
auto | equation_solver () const -> const equation_solver_type & |
Access the solver of equations in Rosenbrock methods. | |
auto | tolerances (const error_tolerances< variable_type > &val) -> Derived & |
Set the error tolerances. | |
Public Member Functions inherited from num_collect::ode::formula_base< Derived, Problem > | |
formula_base (const problem_type &problem=problem_type()) | |
Constructor. | |
auto | problem () -> problem_type & |
Get the problem. | |
auto | problem () const -> const problem_type & |
Get the problem. | |
void | step (scalar_type time, scalar_type step_size, const variable_type ¤t, variable_type &estimate) |
Compute the next variable. | |
Static Public Attributes | |
static constexpr index_type | lesser_order = 3 |
Order of lesser coefficients of this formula. | |
static constexpr auto | log_tag |
Log tag. | |
static constexpr index_type | order = 4 |
Order of this formula. | |
static constexpr index_type | stages = 6 |
Number of stages of this formula. | |
Coefficients in Rosenbrock method. | |
| |
static constexpr scalar_type | a21 = coeff(0.75) |
static constexpr scalar_type | a31 = coeff(7.5162877593868457e-2) |
static constexpr scalar_type | a32 = coeff(2.4837122406131545e-2) |
static constexpr scalar_type | a41 = coeff(1.6532708886396510) |
static constexpr scalar_type | a42 = coeff(0.21545706385445562) |
static constexpr scalar_type | a43 = coeff(-1.3157488872766792) |
static constexpr scalar_type | a51 = coeff(19.385003738039885) |
static constexpr scalar_type | a52 = coeff(1.2007117225835324) |
static constexpr scalar_type | a53 = coeff(-19.337924059522791) |
static constexpr scalar_type | a54 = coeff(-0.24779140110062559) |
static constexpr scalar_type | a61 = coeff(-7.3844531665375115) |
static constexpr scalar_type | a62 = coeff(-0.30593419030174646) |
static constexpr scalar_type | a63 = coeff(7.8622074209377981) |
static constexpr scalar_type | a64 = coeff(0.57817993590145966) |
static constexpr scalar_type | a65 = coeff(0.25) |
static constexpr scalar_type | b1 = coeff(0) |
static constexpr scalar_type | b2 = a21 |
static constexpr scalar_type | b3 = a31 + a32 |
static constexpr scalar_type | b4 = a41 + a42 + a43 |
static constexpr scalar_type | b5 = a51 + a52 + a53 + a54 |
static constexpr scalar_type | b6 = a61 + a62 + a63 + a64 + a65 |
static constexpr scalar_type | g21 = coeff(-0.75) |
static constexpr scalar_type | g31 = coeff(-8.8644359075349941e-2) |
static constexpr scalar_type | g32 = coeff(-2.8688974257983398e-2) |
static constexpr scalar_type | g41 = coeff(-4.8470034585330284) |
static constexpr scalar_type | g42 = coeff(-0.31583244269672095) |
static constexpr scalar_type | g43 = coeff(4.9536568360123221) |
static constexpr scalar_type | g51 = coeff(-26.769456904577400) |
static constexpr scalar_type | g52 = coeff(-1.5066459128852787) |
static constexpr scalar_type | g53 = coeff(27.200131480460591) |
static constexpr scalar_type | g54 = coeff(0.82597133700208525) |
static constexpr scalar_type | g61 = coeff(6.5876206496361416) |
static constexpr scalar_type | g62 = coeff(0.36807059172993878) |
static constexpr scalar_type | g63 = coeff(-6.7423520694658121) |
static constexpr scalar_type | g64 = coeff(-0.10619631475741095) |
static constexpr scalar_type | g65 = coeff(-0.35714285714285715) |
static constexpr scalar_type | g = coeff(0.25) |
static constexpr scalar_type | g1 = g |
static constexpr scalar_type | g2 = g21 + g |
static constexpr scalar_type | g3 = g31 + g32 + g |
static constexpr scalar_type | g4 = g41 + g42 + g43 + g |
static constexpr scalar_type | g5 = g51 + g52 + g53 + g54 + g |
static constexpr scalar_type | g6 = g61 + g62 + g63 + g64 + g65 + g |
static constexpr scalar_type | c1 = coeff(-0.79683251690137014) |
static constexpr scalar_type | c2 = coeff(6.2136401428192344e-02) |
static constexpr scalar_type | c3 = coeff(1.1198553514719862) |
static constexpr scalar_type | c4 = coeff(0.47198362114404874) |
static constexpr scalar_type | c5 = coeff(-0.10714285714285714) |
static constexpr scalar_type | c6 = coeff(0.25) |
static constexpr scalar_type | cw1 = coeff(-7.3844531665375115) |
static constexpr scalar_type | cw2 = coeff(-0.30593419030174646) |
static constexpr scalar_type | cw3 = coeff(7.8622074209377981) |
static constexpr scalar_type | cw4 = coeff(0.57817993590145966) |
static constexpr scalar_type | cw5 = coeff(0.25) |
static constexpr scalar_type | ce1 = c1 - cw1 |
static constexpr scalar_type | ce2 = c2 - cw2 |
static constexpr scalar_type | ce3 = c3 - cw3 |
static constexpr scalar_type | ce4 = c4 - cw4 |
static constexpr scalar_type | ce5 = c5 - cw5 |
static constexpr scalar_type | ce6 = c6 |
Private Attributes | |
variable_type | temp_rhs_ {} |
Temporary right-hand-side vector. | |
variable_type | temp_var_ {} |
Temporary variable. | |
Intermediate variables. | |
variable_type | k1_ {} |
variable_type | k2_ {} |
variable_type | k3_ {} |
variable_type | k4_ {} |
variable_type | k5_ {} |
variable_type | k6_ {} |
Additional Inherited Members | |
Protected Member Functions inherited from num_collect::ode::rosenbrock::rosenbrock_formula_base< Derived, Problem, EquationSolver > | |
auto | derived () const noexcept -> const Derived & |
Access derived object. | |
auto | derived () noexcept -> Derived & |
Access derived object. | |
Protected Member Functions inherited from num_collect::ode::formula_base< Derived, Problem > | |
auto | derived () const noexcept -> const Derived & |
Access derived object. | |
auto | derived () noexcept -> Derived & |
Access derived object. | |
Static Protected Member Functions inherited from num_collect::ode::rosenbrock::rosenbrock_formula_base< Derived, Problem, EquationSolver > | |
template<typename T > | |
static constexpr auto | coeff (T val) -> scalar_type |
Convert coefficients. | |
template<typename T1 , typename T2 > | |
static constexpr auto | coeff (T1 num, T2 den) -> scalar_type |
Create coefficients. | |
Static Protected Member Functions inherited from num_collect::ode::formula_base< Derived, Problem > | |
template<typename T > | |
static constexpr auto | coeff (T val) -> scalar_type |
Convert coefficients. | |
template<typename T1 , typename T2 > | |
static constexpr auto | coeff (T1 num, T2 den) -> scalar_type |
Create coefficients. | |
Class of RODASPR formula [23] for Rosenbrock method.
Problem | Type of problem. |
EquationSolver | Type of class to solve equations in Rosenbrock methods. |
Definition at line 43 of file rodaspr_formula.h.
using num_collect::ode::rosenbrock::rodaspr_formula< Problem, EquationSolver >::base_type |
Type of base class.
Definition at line 48 of file rodaspr_formula.h.
using num_collect::ode::rosenbrock::rosenbrock_formula_base< Derived, Problem, EquationSolver >::equation_solver_type |
Type of class to solve equations in Rosenbrock methods.
Definition at line 49 of file rosenbrock_formula_base.h.
|
inlineexplicit |
|
inlinenodiscard |
Access the solver of equations in Rosenbrock methods.
Definition at line 97 of file rosenbrock_formula_base.h.
|
inlinenodiscard |
Access the solver of equations in Rosenbrock methods.
Definition at line 88 of file rosenbrock_formula_base.h.
|
inline |
Compute the next variable.
[in] | time | Current time. |
[in] | step_size | Step size. |
[in] | current | Current variable. |
[out] | estimate | Estimate of the next variable. |
Definition at line 172 of file rodaspr_formula.h.
|
inline |
Compute the next variable and weak estimate of it with embedded formula.
[in] | time | Current time. |
[in] | step_size | Step size. |
[in] | current | Current variable. |
[out] | estimate | Estimate of the next variable. |
[out] | error | Estimate of error. |
Definition at line 188 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 95 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 96 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 97 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 98 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 99 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 100 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 101 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 102 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 103 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 104 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 105 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 106 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 107 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 108 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 109 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 111 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 112 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 113 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 114 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 115 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 116 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 142 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 143 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 144 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 145 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 146 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 147 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 155 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 156 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 157 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 158 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 159 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 160 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 149 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 150 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 151 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 152 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 153 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 133 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 135 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 136 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 118 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 137 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 119 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 120 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 138 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 121 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 122 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 123 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 139 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 124 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 125 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 126 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 127 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 140 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 128 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 129 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 130 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 131 of file rodaspr_formula.h.
|
staticconstexpr |
Coefficient in Rosenbrock method.
Definition at line 132 of file rodaspr_formula.h.
|
private |
Intermediate variable.
Definition at line 272 of file rodaspr_formula.h.
|
private |
Intermediate variable.
Definition at line 273 of file rodaspr_formula.h.
|
private |
Intermediate variable.
Definition at line 274 of file rodaspr_formula.h.
|
private |
Intermediate variable.
Definition at line 275 of file rodaspr_formula.h.
|
private |
Intermediate variable.
Definition at line 276 of file rodaspr_formula.h.
|
private |
Intermediate variable.
Definition at line 277 of file rodaspr_formula.h.
|
staticconstexpr |
Order of lesser coefficients of this formula.
Definition at line 76 of file rodaspr_formula.h.
|
staticconstexpr |
Log tag.
Definition at line 79 of file rodaspr_formula.h.
|
staticconstexpr |
Order of this formula.
Definition at line 69 of file rodaspr_formula.h.
|
staticconstexpr |
Number of stages of this formula.
Definition at line 66 of file rodaspr_formula.h.
|
private |
Temporary right-hand-side vector.
Definition at line 284 of file rodaspr_formula.h.
|
private |
Temporary variable.
Definition at line 281 of file rodaspr_formula.h.