libode
Easy to compile, fast ODE integrators as C++ classes
Loading...
Searching...
No Matches
ode::OdeNewtonSDIRK< Integrator > Class Template Reference

Extension of OdeNewtonBridge class for fully SDIRK methods. More...

#include <ode_newton_bridge.h>

Inheritance diagram for ode::OdeNewtonSDIRK< Integrator >:
ode::OdeNewtonBridge< Integrator > ode::OdeNewton

Public Member Functions

 OdeNewtonSDIRK (unsigned long neq, Integrator *integrator)
 constructs
 
void set_ik (int ik)
 sets the index of the k vector being solved for
 
- Public Member Functions inherited from ode::OdeNewtonBridge< Integrator >
 OdeNewtonBridge (unsigned long neq, unsigned long nnew, Integrator *integrator)
 constructs
 
 ~OdeNewtonBridge ()
 destructs
 
- Public Member Functions inherited from ode::OdeNewton
 OdeNewton (unsigned long n)
 constructs
 
virtual ~OdeNewton ()
 destructs
 
unsigned long get_n ()
 gets the size of the system
 
double get_tol_Newton ()
 gets the L infinity tolerance
 
unsigned long get_iter_Newton ()
 gets iteration counter
 
int get_iJLU ()
 gets the LU decomposition interval
 
unsigned long get_nJLU ()
 gets the LU decomposition counter
 
unsigned long get_n_solve_LU ()
 gets the LU solve counter
 
bool get_modified ()
 gets whether modified Newtion's is being used
 
bool get_ignore_JLU ()
 gets whether no LU decompositions should be done
 
void set_tol_Newton (double tol_Newton)
 sets the L infinity tolerance
 
void set_iter_Newton (unsigned long iter_Newton)
 sets the iteration counter
 
void set_iJLU (int iJLU)
 sets the LU decomposition interval
 
void set_modified (bool modified)
 sets whether modified Newtion's is being used
 
void set_ignore_JLU (bool ignore_JLU)
 sets whether no LU decompositions should be done
 
int solve_Newton (double *x)
 Solve the system of equations.
 

Protected Attributes

double ** k_
 pointer to the stage slopes of RK methods
 
double gam
 diagonal tableau coefficient
 
double ** a
 pointer to tableau coefficients
 
double * b
 pointer to tableau coefficients
 
int ik_
 the index of the k vector being solved for
 
- Protected Attributes inherited from ode::OdeNewtonBridge< Integrator >
unsigned long neq_
 ODE system size.
 
unsigned long nnew_
 Newton system size.
 
Integrator * integrator_
 storage of a pointer to the solver class
 
double * sol_
 pointer to the solver's solution vector
 
double ** Jac_
 pointer to the solver's Jacobian matrix
 
double * dt_
 pointer to time step member
 
double * ftemp_
 temporary values for evaluation of Newton function
 
double * soltemp_
 temporary solution values
 

Additional Inherited Members

- Protected Member Functions inherited from ode::OdeNewtonBridge< Integrator >
void fun (double *solin, double *fout)
 wrapper around system evaluation function
 
void jac (double *solin, double **Jout)
 wrapper around Jacobian evaluation function
 
- Protected Member Functions inherited from ode::OdeNewton
virtual void f_Newton (double *x, double *f)=0
 evaluates the function being zeroed
 
virtual void J_Newton (double *x, double **J)=0
 evaluates the Jacobian matrix of the function being zeroed
 

Detailed Description

template<class Integrator>
class ode::OdeNewtonSDIRK< Integrator >

Extension of OdeNewtonBridge class for fully SDIRK methods.

This class extends the Bridge class by storing pointers to the integrator class's k vectors and tableau/coefficients, which are needed for newton iterations. It also stores an ik_ integer indicating which stage of the SDIRK scheme is being solved for and the gamma value of the scheme (the diagonal of the a matrix).

Definition at line 134 of file ode_newton_bridge.h.

Constructor & Destructor Documentation

◆ OdeNewtonSDIRK()

template<class Integrator >
ode::OdeNewtonSDIRK< Integrator >::OdeNewtonSDIRK ( unsigned long neq,
Integrator * integrator )
inline

constructs

Parameters
[in]neqsize of system of ODEs
[in]integratorpointer to integrator object

Definition at line 142 of file ode_newton_bridge.h.

Member Function Documentation

◆ set_ik()

template<class Integrator >
void ode::OdeNewtonSDIRK< Integrator >::set_ik ( int ik)
inline

sets the index of the k vector being solved for

Definition at line 156 of file ode_newton_bridge.h.

Member Data Documentation

◆ a

template<class Integrator >
double** ode::OdeNewtonSDIRK< Integrator >::a
protected

pointer to tableau coefficients

Definition at line 165 of file ode_newton_bridge.h.

◆ b

template<class Integrator >
double* ode::OdeNewtonSDIRK< Integrator >::b
protected

pointer to tableau coefficients

Definition at line 167 of file ode_newton_bridge.h.

◆ gam

template<class Integrator >
double ode::OdeNewtonSDIRK< Integrator >::gam
protected

diagonal tableau coefficient

Definition at line 163 of file ode_newton_bridge.h.

◆ ik_

template<class Integrator >
int ode::OdeNewtonSDIRK< Integrator >::ik_
protected

the index of the k vector being solved for

Definition at line 169 of file ode_newton_bridge.h.

◆ k_

template<class Integrator >
double** ode::OdeNewtonSDIRK< Integrator >::k_
protected

pointer to the stage slopes of RK methods

Definition at line 161 of file ode_newton_bridge.h.


The documentation for this class was generated from the following file: