libode
Easy to compile, fast ODE integrators as C++ classes
Loading...
Searching...
No Matches
ode_radau_iia_5.h
Go to the documentation of this file.
1#ifndef ODE_RADAU_IIA_5_H_
2#define ODE_RADAU_IIA_5_H_
3
5
6#include "ode_adaptive.h"
7#include "ode_irk.h"
8#include "ode_newton_bridge.h"
9
10namespace ode {
11
12//forward declaration to set up Newton class
13class OdeRadauIIA5;
14
16class NewtonRadauIIA5 : public OdeNewtonIRK<OdeRadauIIA5> {
17 public:
19
24 NewtonRadauIIA5 (unsigned long neq, unsigned long nnew, OdeRadauIIA5 *integrator) : OdeNewtonIRK (neq, nnew, integrator) {};
25 private:
26 void f_Newton (double *x, double *y);
27 void J_Newton (double *x, double **J);
28};
29
31
34class OdeRadauIIA5 : public OdeAdaptive, private OdeIRK {
35 //friends!
36 friend class OdeNewtonBridge<OdeRadauIIA5>;
37 friend class OdeNewtonIRK<OdeRadauIIA5>;
38
39 public:
41
44 OdeRadauIIA5 (unsigned long neq);
45
48
50 NewtonRadauIIA5 *get_newton () { return(newton_); }
51
52 private:
53 double **a;
54 double *b;
55 NewtonRadauIIA5 *newton_;
56 void step_ (double dt);
57};
58
59} // namespace ode
60
61#endif
Nonlinear system solver for OdeRadauIIA5.
NewtonRadauIIA5(unsigned long neq, unsigned long nnew, OdeRadauIIA5 *integrator)
constructs
Base class implementing solver functions with adaptive time steps.
Provides a large vector containing the slope values of all stages with pointers to each of the indivi...
Definition ode_irk.h:9
Templated base class connecting solver objects and OdeNewton objects.
Extension of OdeNewtonBridge class for fully implicit methods.
The fifth-order, L-stable, fully-implicit Radau IIA method with 3 stages.
NewtonRadauIIA5 * get_newton()
returns a pointer to the solver's Newton system object
OdeRadauIIA5(unsigned long neq)
constructs