![]() |
libgenua
Basic Geometry, Numerical Algorithms and Interfaces
|
Second-order three-stage SDIRK method.
As opposed to the 2-stage method, numerical dissipation in this method can be controlled. The default constructor yields the highest accuracy (with order 3), for high dissipation, use gamma = 1 (order 2), for low dissipation, gamma = 0.19.
B. Owren and H.H. Simonsen: "Alternative integration methods for problems in structural dynamics." Comput. Methods Appl. Mech. Engrg., 122:1–10, 1995.
#include <sdirk.h>
Public Member Functions | |
OwrenSimonsen23 (Real gamma=0.43586652150845899941601945) | |
for L-stability, 0.1804 < gamma < 2.1856 | |
![]() | |
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 | |
Additional Inherited Members | |
![]() | |
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 | |
![]() | |
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 |
stepsize reduction limit | |
Real | m_hExpansion |
stepsize expansion limit | |
Real | m_order |
order of the advancing method | |
int | m_estage |
number of stages of the embedded error estimator | |