libode
Easy to compile, fast ODE integrators as C++ classes
Loading...
Searching...
No Matches
ode_geng_5.h
Go to the documentation of this file.
1#ifndef ODE_GENG_5_H_
2#define ODE_GENG_5_H_
3
5
6#include "ode_adaptive.h"
7#include "ode_irk.h"
8#include "ode_newton_bridge.h"
9
10
11namespace ode {
12
13//forward declaration to set up Newton class
14class OdeGeng5;
15
17class NewtonGeng5 : public OdeNewtonIRK<OdeGeng5> {
18 public:
20
25 NewtonGeng5 (unsigned long neq, unsigned long nnew, OdeGeng5 *integrator) : OdeNewtonIRK (neq, nnew, integrator) {};
26 private:
27 void f_Newton (double *x, double *y);
28 void J_Newton (double *x, double **J);
29};
30
32class OdeGeng5 : public OdeAdaptive, private OdeIRK {
33 //friends!
34 friend class OdeNewtonBridge<OdeGeng5>;
35 friend class OdeNewtonIRK<OdeGeng5>;
36
37 public:
39
42 OdeGeng5 (unsigned long neq);
43
45 ~OdeGeng5 ();
46
48 NewtonGeng5 *get_newton () { return(newton_); }
49
50 private:
51 double **a;
52 double *b;
53 NewtonGeng5 *newton_;
54 void step_ (double dt);
55};
56
57} // namespace ode
58
59#endif
Nonlinear system solver for OdeGeng5.
Definition ode_geng_5.h:17
NewtonGeng5(unsigned long neq, unsigned long nnew, OdeGeng5 *integrator)
constructs
Definition ode_geng_5.h:25
Base class implementing solver functions with adaptive time steps.
The fifth-order, symplectic, fully-implicit Geng integrator with 3 stages.
Definition ode_geng_5.h:32
~OdeGeng5()
destructs
Definition ode_geng_5.cc:82
OdeGeng5(unsigned long neq)
constructs
Definition ode_geng_5.cc:60
NewtonGeng5 * get_newton()
returns a pointer to the solver's Newton system object
Definition ode_geng_5.h:48
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.