libode
Easy to compile, fast ODE integrators as C++ classes
Loading...
Searching...
No Matches
ode_sdirk_43.h
Go to the documentation of this file.
1#ifndef ODE_SDIRK_43_H_
2#define ODE_SDIRK_43_H_
3
5
6#include "ode_embedded.h"
7#include "ode_rk.h"
8#include "ode_newton_bridge.h"
9
10namespace ode {
11
12//forward declaration to set up Newton class
13class OdeSDIRK43;
14
16class NewtonSDIRK43 : public OdeNewtonSDIRK<OdeSDIRK43> {
17 public:
19
23 NewtonSDIRK43 (unsigned long neq, OdeSDIRK43 *integrator) : OdeNewtonSDIRK (neq, integrator) {};
24 private:
25 void f_Newton (double *x, double *y);
26 void J_Newton (double *x, double **J);
27};
28
30
33class OdeSDIRK43 : public OdeEmbedded, private OdeRK {
34 //friends!
35 friend class OdeNewtonBridge<OdeSDIRK43>;
36 friend class OdeNewtonSDIRK<OdeSDIRK43>;
37
38 public:
40
43 OdeSDIRK43 (unsigned long neq);
44
46 ~OdeSDIRK43 ();
47
49 NewtonSDIRK43 *get_newton () { return(newton_); }
50
51 private:
52 double gam;
53 double **a;
54 double *b;
55 double *d;
56 NewtonSDIRK43 *newton_;
57 void step_ (double dt);
58};
59
60} // namespace ode
61
62#endif
Nonlinear system solver for OdeSDIRK43.
NewtonSDIRK43(unsigned long neq, OdeSDIRK43 *integrator)
constructs
Base clase implementing methods for embedded Runge-Kutta error estimation.
Templated base class connecting solver objects and OdeNewton objects.
Extension of OdeNewtonBridge class for fully SDIRK methods.
Provides space for stage slope values, an array of arrays for k values.
Definition ode_rk.h:9
L-stable 4/3 SDIRK pair.
NewtonSDIRK43 * get_newton()
returns a pointer to the solver's Newton system object
~OdeSDIRK43()
destructs
OdeSDIRK43(unsigned long neq)
constructs