Extension: Matrix functions
#include "dg/matrix/matrix.h"
|
Convert identifiers to their corresponding dg::mat::FunctionalButcherTableau
.
More...
Public Types | |
using | value_type = real_type |
Public Member Functions | |
ConvertsToFunctionalButcherTableau (FunctionalButcherTableau< real_type > tableau) | |
ConvertsToFunctionalButcherTableau (enum tableau_identifier id) | |
Create FunctionalButcherTableau from dg::mat::func_tableau_identifier . More... | |
ConvertsToFunctionalButcherTableau (std::string name) | |
Create FunctionalButcherTableau from its name (very useful) More... | |
ConvertsToFunctionalButcherTableau (const char *name) | |
Create FunctionalButcherTableau from its name (very useful) More... | |
operator FunctionalButcherTableau< real_type > () const | |
Convert identifiers to their corresponding dg::mat::FunctionalButcherTableau
.
This is a helper class to simplify the interfaces of our timestepper functions and classes. The sole purpose is to implicitly convert either a FunctionalButcherTableau or one of the following identifiers to an instance of a FunctionalButcherTableau.
We follow the naming convention of the ARKode library http://runge.math.smu.edu/arkode_dev/doc/guide/build/html/Butcher.html (They also provide nice stability plots for their methods) as NAME-S-P-Q or NAME-S-Q, where
Name | Identifier | Description |
---|---|---|
Euler | dg::mat::EXPLICIT_EULER_1_1 | Hochbruck and Ostermann, Exponential Integrators, Acta Numerica (2010) |
Midpoint-2-2 | dg::mat::MIDPOINT_2_2 | Hochbruck and Ostermann, Exponential Integrators, Acta Numerica (2010) |
Runge-Kutta-4-4 | dg::mat::CLASSIC_4_4 | Cox and Matthews, J. Comput. Phys., 176 (2002) |
Hochbruck-3-3-4 | dg::mat::HOCHBRUCK_3_3_4 | Hochbruck and Ostermann, Exponential Integrators, Acta Numerica (2010) (The exprb43 method) |
real_type | The type of the coefficients in the FunctionalButcherTableau |
using dg::mat::ConvertsToFunctionalButcherTableau< real_type >::value_type = real_type |
|
inline |
Of course a FunctionalButcherTableau converts to a FunctionalButcherTableau Useful if you constructed your very own coefficients
|
inline |
Create FunctionalButcherTableau from dg::mat::func_tableau_identifier
.
The use of this constructor might be a bit awkward because you'll have to write all caps.
id | the identifier, for example dg::mat::RUNGE_KUTTA_4_4 |
|
inline |
Create FunctionalButcherTableau from its name (very useful)
Explicit methods
We follow the naming convention of the ARKode library http://runge.math.smu.edu/arkode_dev/doc/guide/build/html/Butcher.html (They also provide nice stability plots for their methods) as NAME-S-P-Q or NAME-S-Q, where
Name | Identifier | Description |
---|---|---|
Euler | dg::mat::EXPLICIT_EULER_1_1 | Hochbruck and Ostermann, Exponential Integrators, Acta Numerica (2010) |
Midpoint-2-2 | dg::mat::MIDPOINT_2_2 | Hochbruck and Ostermann, Exponential Integrators, Acta Numerica (2010) |
Runge-Kutta-4-4 | dg::mat::CLASSIC_4_4 | Cox and Matthews, J. Comput. Phys., 176 (2002) |
Hochbruck-3-3-4 | dg::mat::HOCHBRUCK_3_3_4 | Hochbruck and Ostermann, Exponential Integrators, Acta Numerica (2010) (The exprb43 method) |
name | The name of the tableau as stated in the Name column above, as a string, for example "Euler" |
|
inline |
Create FunctionalButcherTableau from its name (very useful)
Explicit methods
We follow the naming convention of the ARKode library http://runge.math.smu.edu/arkode_dev/doc/guide/build/html/Butcher.html (They also provide nice stability plots for their methods) as NAME-S-P-Q or NAME-S-Q, where
Name | Identifier | Description |
---|---|---|
Euler | dg::mat::EXPLICIT_EULER_1_1 | Hochbruck and Ostermann, Exponential Integrators, Acta Numerica (2010) |
Midpoint-2-2 | dg::mat::MIDPOINT_2_2 | Hochbruck and Ostermann, Exponential Integrators, Acta Numerica (2010) |
Runge-Kutta-4-4 | dg::mat::CLASSIC_4_4 | Cox and Matthews, J. Comput. Phys., 176 (2002) |
Hochbruck-3-3-4 | dg::mat::HOCHBRUCK_3_3_4 | Hochbruck and Ostermann, Exponential Integrators, Acta Numerica (2010) (The exprb43 method) |
name | The name of the tableau as stated in the Name column above, as a string, for example "Euler" |
|
inline |
Convert to FunctionalButcherTableau
which means an object can be directly assigned to a FunctionalButcherTableau