libgenua
Basic Geometry, Numerical Algorithms and Interfaces
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SdirkBase< N > Class Template Reference

Detailed Description

template<int N>
class SdirkBase< N >

Base class for SDIRK integrators.

Implementations of various singly-diagonal implicit Runge-Kutta (SDIRK) schemes inherit from this class which implements the implicit Runge-Kutta stepping for 2nd order dynamic systems.

Favorable properties of SDIRK integrators are:

Note: Do not use this class directly; only the child classes initialize the integration coefficients.

See Also
SecondOrderSystem, OwrenSimonsen22, OwrenSimonsen23, OwrenSimonsen34

#include <sdirk.h>

Collaboration diagram for SdirkBase< N >:
[legend]

Public Member Functions

Real step (SecondOrderSystem &sys, Real tn, Real h, const Vector &un, const Vector &vn, Vector &us, Vector &vs)
 perform a single step from tn to tn + h, return error estimate if possible
 
Real richardson (SecondOrderSystem &sys, Real tn, Real h, const Vector &un, const Vector &vn, Vector &us, Vector &vs)
 perform Richardson extrapolation, return error estimate
 

Protected Member Functions

void initCoefficients ()
 compute the derived coefficients
 
void initOwrenSimonsen ()
 compute the b, c for stiffly accurate rules
 
void allocate (size_t n)
 allocate workspace
 
Real nextStep (Real h, Real errorEst) const
 determine new stepsize from error estimate and tolerance
 

Protected Attributes

SMatrix< N, N > m_a
 coefficients multiplying y'
 
SVector< N > m_b
 result coefficients
 
SVector< N > m_bhat
 coefficients for error estimator (m_estage > 0)
 
SVector< N > m_c
 timestep coefficient
 
Vector m_k [N]
 workspace
 
Real m_gamma
 diagonal coefficient gamma
 
Real m_hReduction = 0.25
 stepsize reduction limit
 
Real m_hExpansion = 4.00
 stepsize expansion limit
 
Real m_order = 2.0
 order of the advancing method
 
int m_estage = 0
 number of stages of the embedded error estimator
 

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