8#ifndef ODE_NEWTON_BRIDGE_H_
9#define ODE_NEWTON_BRIDGE_H_
16template <
class Integrator>
78 void fun(
double *solin,
double *fout) {
integrator_->ode_fun_(solin, fout); }
84 void jac(
double *solin,
double **Jout) {
integrator_->ode_jac_(solin, Jout); }
92template <
class Integrator>
133template <
class Integrator>
148 gam = integrator->gam;
Templated base class connecting solver objects and OdeNewton objects.
double ** Jac_
pointer to the solver's Jacobian matrix
void fun(double *solin, double *fout)
wrapper around system evaluation function
unsigned long neq_
ODE system size.
double * dt_
pointer to time step member
void jac(double *solin, double **Jout)
wrapper around Jacobian evaluation function
Integrator * integrator_
storage of a pointer to the solver class
double * ftemp_
temporary values for evaluation of Newton function
OdeNewtonBridge(unsigned long neq, unsigned long nnew, Integrator *integrator)
constructs
double * sol_
pointer to the solver's solution vector
double * soltemp_
temporary solution values
unsigned long nnew_
Newton system size.
~OdeNewtonBridge()
destructs
Newton's method for nonlinear systems of equations.
void set_iter_Newton(unsigned long iter_Newton)
sets the iteration counter
Extension of OdeNewtonBridge class for fully implicit methods.
int nk_
number of stages or k vectors
OdeNewtonIRK(unsigned long neq, int nk, Integrator *integrator)
constructs
double ** a
pointer to tableau coefficients
double ** k_
pointer to the stage slopes of RK methods
double * b
pointer to tableau coefficients
Extension of OdeNewtonBridge class for fully SDIRK methods.
void set_ik(int ik)
sets the index of the k vector being solved for
double ** k_
pointer to the stage slopes of RK methods
double ** a
pointer to tableau coefficients
OdeNewtonSDIRK(unsigned long neq, Integrator *integrator)
constructs
double gam
diagonal tableau coefficient
double * b
pointer to tableau coefficients
int ik_
the index of the k vector being solved for