dune-fem 2.8.0
Loading...
Searching...
No Matches
Classes | Typedefs | Functions | Variables
DuneODE Namespace Reference

Classes

class  BasicImplicitRungeKuttaSolver
 Implicit RungeKutta ODE solver. More...
 
class  BasicROWRungeKuttaSolver
 ROW RungeKutta ODE solver. More...
 
class  ExplicitMultiStepSolver
 Exlicit multi step ODE solver. More...
 
class  ExplicitRungeKuttaSolver
 Exlicit RungeKutta ODE solver. More...
 
class  ExplMultiStepBase
 
class  ImplicitOdeSolver
 
class  ImplicitRungeKuttaSolver
 Implicit RungeKutta ODE solver. More...
 
struct  ImplicitRungeKuttaSolverParameters
 
class  ImplicitRungeKuttaTimeStepControl
 
struct  NoImplicitRungeKuttaSourceTerm
 
struct  NoROWRungeKuttaSourceTerm
 
class  OdeSolverInterface
 Interface class for ODE Solver. More...
 
class  PIDTimeStepControl
 PID time step control. More...
 
class  ROWRungeKuttaSolver
 ROW RungeKutta ODE solver. More...
 
class  ROWSimpleButcherTable
 
class  SemiImplicitOdeSolver
 
class  SemiImplicitRungeKuttaSolver
 Implicit RungeKutta ODE solver. More...
 
class  SemiImplicitRungeKuttaSourceTerm
 
class  SimpleButcherTable
 

Typedefs

using ODEParameters = ImplicitRungeKuttaSolverParameters
 
template<class Destination >
using ExplicitOdeSolver = ExplicitRungeKuttaSolver< Destination >
 
template<class Destination >
using ParDGHelmholtz = DGHelmholtzOperator< SpaceOperatorInterface< Destination > >
 
template<class Destination >
using ParDGNewtonInverse = NewtonInverseOperator< typename ParDGHelmholtz< Destination > ::JacobianOperatorType, KrylovInverseOperator< Destination > >
 

Functions

SimpleButcherTable< double > explicitEulerButcherTable ()
 
SimpleButcherTable< double > tvd2ButcherTable ()
 
SimpleButcherTable< double > tvd3ButcherTable ()
 
SimpleButcherTable< double > rk4ButcherTable ()
 
SimpleButcherTable< double > expl6ButcherTable ()
 
SimpleButcherTable< double > implicit34ButcherTable ()
 
SimpleButcherTable< double > implicit3ButcherTable ()
 
SimpleButcherTable< double > implicitEulerButcherTable ()
 
SimpleButcherTable< double > gauss2ButcherTable ()
 
SimpleButcherTable< double > semiImplicitEulerButcherTable (bool expl)
 
SimpleButcherTable< double > semiImplicit23ButcherTable (bool expl)
 
SimpleButcherTable< double > semiImplicit33ButcherTable (bool expl)
 
SimpleButcherTable< double > semiImplicitSSP222ButcherTable (bool expl)
 
SimpleButcherTable< double > semiImplicitIERK45ButcherTable (bool expl)
 
ROWSimpleButcherTable< double > row2ButcherTable ()
 
ROWSimpleButcherTable< double > row3ButcherTable ()
 
SimpleButcherTable< double > semiImplicitARK34ButcherTable (bool expl)
 
SimpleButcherTable< double > semiImplicitARK46ButcherTable (bool expl)
 

Variables

static const double dirk34_alpha = 2.*std::cos(M_PI/18.)/std::sqrt(3.)
 
static const double dirk34_alpha2 = dirk34_alpha * dirk34_alpha
 
static const double DIRK34_A []
 
static const double DIRK34_b []
 
static const double DIRK34_c []
 
static const double delta_dirk = 1.0/2.0 + sqrt(3.0)/6.0
 
static const double DIRK3_A []
 
static const double DIRK3_b []
 
static const double DIRK3_c []
 
static const double ImplicitEuler_A [] = {1.0}
 
static const double ImplicitEuler_b [] = {1.0}
 
static const double ImplicitEuler_c [] = {1.0}
 
static const double Gauss2_A [] = {0.5}
 
static const double Gauss2_b [] = {1.0}
 
static const double Gauss2_c [] = {0.5}
 
static const double SIEuler_A [] = {1.0}
 
static const double SIEuler_c [] = {1.0}
 
static const double SIEuler_Aex [] = {0.0}
 
static const double SIEuler_cex [] = {0.0}
 
static const double SIEuler_b [] = {1.0}
 
static const double SIRK23_A []
 
static const double SIRK23_c []
 
static const double SIRK23_Aex []
 
static const double SIRK23_cex []
 
static const double SIRK23_b []
 
static const double SIRK33_A []
 
static const double SIRK33_c []
 
static const double SIRK33_Aex []
 
static const double SIRK33_cex []
 
static const double SIRK33_b []
 
static const double delta = 1.0 - 1.0/sqrt(2.0)
 
static const double IMEX_SSP222_A []
 
static const double IMEX_SSP222_c []
 
static const double IMEX_SSP222_Aex []
 
static const double IMEX_SSP222_cex []
 
static const double IMEX_SSP222_b []
 
static const double IERK45_Aex []
 
static const double IERK45_cex []
 
static const double IERK45_A []
 
static const double IERK45_c []
 
static const double IERK45_b []
 
static const double ROW2_A []
 
static const double ROW2_b []
 
static const double ROW2_c []
 
static const double ROW2_B []
 
static const double delta_row = 1.0/2.0 + sqrt(3.0)/6.0
 
static const double ROW3_A []
 
static const double ROW3_b []
 
static const double ROW3_c []
 
static const double ROW3_B []
 

Typedef Documentation

◆ ODEParameters

Function Documentation

◆ expl6ButcherTable()

SimpleButcherTable< double > DuneODE::expl6ButcherTable ( )

◆ explicitEulerButcherTable()

SimpleButcherTable< double > DuneODE::explicitEulerButcherTable ( )

◆ gauss2ButcherTable()

SimpleButcherTable< double > DuneODE::gauss2ButcherTable ( )

◆ implicit34ButcherTable()

SimpleButcherTable< double > DuneODE::implicit34ButcherTable ( )

◆ implicit3ButcherTable()

SimpleButcherTable< double > DuneODE::implicit3ButcherTable ( )

◆ implicitEulerButcherTable()

SimpleButcherTable< double > DuneODE::implicitEulerButcherTable ( )

◆ rk4ButcherTable()

SimpleButcherTable< double > DuneODE::rk4ButcherTable ( )

◆ row2ButcherTable()

ROWSimpleButcherTable< double > DuneODE::row2ButcherTable ( )

◆ row3ButcherTable()

ROWSimpleButcherTable< double > DuneODE::row3ButcherTable ( )

◆ semiImplicit23ButcherTable()

SimpleButcherTable< double > DuneODE::semiImplicit23ButcherTable ( bool  expl)

◆ semiImplicit33ButcherTable()

SimpleButcherTable< double > DuneODE::semiImplicit33ButcherTable ( bool  expl)

◆ semiImplicitARK34ButcherTable()

SimpleButcherTable< double > DuneODE::semiImplicitARK34ButcherTable ( bool  expl)

◆ semiImplicitARK46ButcherTable()

SimpleButcherTable< double > DuneODE::semiImplicitARK46ButcherTable ( bool  expl)

◆ semiImplicitEulerButcherTable()

SimpleButcherTable< double > DuneODE::semiImplicitEulerButcherTable ( bool  expl)

◆ semiImplicitIERK45ButcherTable()

SimpleButcherTable< double > DuneODE::semiImplicitIERK45ButcherTable ( bool  expl)

◆ semiImplicitSSP222ButcherTable()

SimpleButcherTable< double > DuneODE::semiImplicitSSP222ButcherTable ( bool  expl)

◆ tvd2ButcherTable()

SimpleButcherTable< double > DuneODE::tvd2ButcherTable ( )

◆ tvd3ButcherTable()

SimpleButcherTable< double > DuneODE::tvd3ButcherTable ( )

Variable Documentation

◆ delta

const double DuneODE::delta = 1.0 - 1.0/sqrt(2.0)
static

◆ delta_dirk

const double DuneODE::delta_dirk = 1.0/2.0 + sqrt(3.0)/6.0
static

◆ delta_row

const double DuneODE::delta_row = 1.0/2.0 + sqrt(3.0)/6.0
static

◆ DIRK34_A

const double DuneODE::DIRK34_A[]
static
Initial value:
=
{(1.+dirk34_alpha)*0.5, 0., 0.,
-0.5*dirk34_alpha, (1.+dirk34_alpha)*0.5, 0.,
1+dirk34_alpha, -(1+2*dirk34_alpha), (1.+dirk34_alpha)*0.5}
static const double dirk34_alpha
Definition: butchertable.cc:109

◆ dirk34_alpha

const double DuneODE::dirk34_alpha = 2.*std::cos(M_PI/18.)/std::sqrt(3.)
static

◆ dirk34_alpha2

const double DuneODE::dirk34_alpha2 = dirk34_alpha * dirk34_alpha
static

◆ DIRK34_b

const double DuneODE::DIRK34_b[]
static
Initial value:
=
{1./(6.*dirk34_alpha2), 1.-1./(3.*dirk34_alpha2),
1./(6.*dirk34_alpha2)}
static const double dirk34_alpha2
Definition: butchertable.cc:110

◆ DIRK34_c

const double DuneODE::DIRK34_c[]
static
Initial value:
=
{(1.+dirk34_alpha)*0.5, 0.5, (1.-dirk34_alpha)*0.5}

◆ DIRK3_A

const double DuneODE::DIRK3_A[]
static
Initial value:
=
{delta_dirk, 0.0,
}
static const double delta_dirk
Definition: butchertable.cc:131

◆ DIRK3_b

const double DuneODE::DIRK3_b[]
static
Initial value:
=
{(0.5-delta_dirk)/(1.0-2.0*delta_dirk), (0.5-delta_dirk)/(1.0-2.0*delta_dirk)}

◆ DIRK3_c

const double DuneODE::DIRK3_c[]
static
Initial value:

◆ Gauss2_A

const double DuneODE::Gauss2_A[] = {0.5}
static

◆ Gauss2_b

const double DuneODE::Gauss2_b[] = {1.0}
static

◆ Gauss2_c

const double DuneODE::Gauss2_c[] = {0.5}
static

◆ IERK45_A

const double DuneODE::IERK45_A[]
static
Initial value:
=
{
0.25, 0.0, 0.0, 0.0, 0.0,
0.34114705729739, 0.25, 0.0, 0.0, 0.0,
0.80458720789763, -0.07095262154540, 0.25, 0.0, 0.0,
-0.52932607329103, 1.15137638494253, -0.80248263237803, 0.25, 0.0,
0.11933093090075, 0.55125531344927, -0.1216872844994, 0.20110104014943, 0.25
}

◆ IERK45_Aex

const double DuneODE::IERK45_Aex[]
static
Initial value:
=
{
0.0, 0.0, 0.0, 0.0, 0.0,
0.39098372452428, 0.0, 0.0, 0.0, 0.0,
1.09436646160460, 0.33181504274704, 0.0, 0.0, 0.0,
0.14631668003312, 0.69488738277516, 0.46893381306619, 0.0, 0.0,
-1.33389883143642, 2.90509214801204, -1.06511748457024, 0.27210900509137, 0.0
}

◆ IERK45_b

const double DuneODE::IERK45_b[]
static
Initial value:
=
{ IERK45_A[20] , IERK45_A[21], IERK45_A[22], IERK45_A[23] , IERK45_A[24] }
static const double IERK45_A[]
Definition: butchertable.cc:314

◆ IERK45_c

const double DuneODE::IERK45_c[]
static
Initial value:
=
{
0.25, 0.34114705729739 + 0.25, 0.80458720789763 -0.07095262154540 + 0.25,
-0.52932607329103 + 1.15137638494253 -0.80248263237803+ 0.25,
0.11933093090075 + 0.55125531344927 -0.1216872844994 + 0.20110104014943 + 0.25
}

◆ IERK45_cex

const double DuneODE::IERK45_cex[]
static
Initial value:
=
{ 0.0, 0.39098372452428, IERK45_Aex[ 10 ] + IERK45_Aex[ 11 ],
IERK45_Aex[ 15 ] + IERK45_Aex[ 16 ] + IERK45_Aex[ 17 ],
IERK45_Aex[ 20 ] + IERK45_Aex[ 21 ] + IERK45_Aex[ 22 ] + IERK45_Aex[ 23 ]
}
static const double IERK45_Aex[]
Definition: butchertable.cc:299

◆ IMEX_SSP222_A

const double DuneODE::IMEX_SSP222_A[]
static
Initial value:
=
{delta, 0.0,
1.0-2.0*delta, delta
}
static const double delta
Definition: butchertable.cc:268

◆ IMEX_SSP222_Aex

const double DuneODE::IMEX_SSP222_Aex[]
static
Initial value:
=
{0.0, 0.0,
1.0, 0.0
}

◆ IMEX_SSP222_b

const double DuneODE::IMEX_SSP222_b[]
static
Initial value:
=
{0.5, 0.5}

◆ IMEX_SSP222_c

const double DuneODE::IMEX_SSP222_c[]
static
Initial value:
=
{delta, 1.0-delta}

◆ IMEX_SSP222_cex

const double DuneODE::IMEX_SSP222_cex[]
static
Initial value:
=
{0.0, 1.0}

◆ ImplicitEuler_A

const double DuneODE::ImplicitEuler_A[] = {1.0}
static

◆ ImplicitEuler_b

const double DuneODE::ImplicitEuler_b[] = {1.0}
static

◆ ImplicitEuler_c

const double DuneODE::ImplicitEuler_c[] = {1.0}
static

◆ ROW2_A

const double DuneODE::ROW2_A[]
static
Initial value:
=
{0.5}

◆ ROW2_b

const double DuneODE::ROW2_b[]
static
Initial value:
=
{1.}

◆ ROW2_B

const double DuneODE::ROW2_B[]
static
Initial value:
=
{0.0}

◆ ROW2_c

const double DuneODE::ROW2_c[]
static
Initial value:
=
{0.}

◆ ROW3_A

const double DuneODE::ROW3_A[]
static
Initial value:
=
{delta_row, 0.0,
}
static const double delta_row
Definition: butchertable.cc:357

◆ ROW3_b

const double DuneODE::ROW3_b[]
static
Initial value:
=
{1./4.,3./4.}

◆ ROW3_B

const double DuneODE::ROW3_B[]
static
Initial value:
=
{0.0, 0.0,
2./3., 0.0
}

◆ ROW3_c

const double DuneODE::ROW3_c[]
static
Initial value:
=
{0,2./3.}

◆ SIEuler_A

const double DuneODE::SIEuler_A[] = {1.0}
static

◆ SIEuler_Aex

const double DuneODE::SIEuler_Aex[] = {0.0}
static

◆ SIEuler_b

const double DuneODE::SIEuler_b[] = {1.0}
static

◆ SIEuler_c

const double DuneODE::SIEuler_c[] = {1.0}
static

◆ SIEuler_cex

const double DuneODE::SIEuler_cex[] = {0.0}
static

◆ SIRK23_A

const double DuneODE::SIRK23_A[]
static
Initial value:
=
{0.5, 0.0, 0.0,
-1.0, 0.5, 0.0,
0.25, 0.25, 0.5
}

◆ SIRK23_Aex

const double DuneODE::SIRK23_Aex[]
static
Initial value:
=
{0.0, 0.0, 0.0,
1.0, 0.0, 0.0,
0.0, 0.5, 0.0
}

◆ SIRK23_b

const double DuneODE::SIRK23_b[]
static
Initial value:
=
{0.25, 0.25, 0.5}

◆ SIRK23_c

const double DuneODE::SIRK23_c[]
static
Initial value:
=
{0.5, -0.5, 1.0}

◆ SIRK23_cex

const double DuneODE::SIRK23_cex[]
static
Initial value:
=
{0.0, 1.0, 0.5}

◆ SIRK33_A

const double DuneODE::SIRK33_A[]
static
Initial value:
=
{3.0/4.0, 0.0, 0.0,
5589.0/6524.0, 75.0/233.0, 0.0,
7691.0/26096.0, -26335.0/78288.0, 65.0/168.0
}

◆ SIRK33_Aex

const double DuneODE::SIRK33_Aex[]
static
Initial value:
=
{0.0, 0.0, 0.0,
8.0/7.0, 0.0, 0.0,
71.0/252.0, 7.0/36.0, 0.0
}

◆ SIRK33_b

const double DuneODE::SIRK33_b[]
static
Initial value:
=
{1.0/8.0, 1.0/8.0, 3.0/4.0}

◆ SIRK33_c

const double DuneODE::SIRK33_c[]
static
Initial value:
=
{3.0/4.0,
5589.0/6524.0 + 75.0/233.0,
7691.0/26096.0 - 26335.0/78288.0 + 65.0/168.0
}

◆ SIRK33_cex

const double DuneODE::SIRK33_cex[]
static
Initial value:
=
{0.0, 8.0/7.0, 71.0/252.0 + 7.0/36.0}