|
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. | |
| ConvertsToFunctionalButcherTableau (std::string name) | |
| Create FunctionalButcherTableau from its name (very useful) | |
| ConvertsToFunctionalButcherTableau (const char *name) | |
| Create FunctionalButcherTableau from its name (very useful) | |
| 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 https://sundials.readthedocs.io/en/latest/arkode/Butcher_link.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 https://sundials.readthedocs.io/en/latest/arkode/Butcher_link.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 https://sundials.readthedocs.io/en/latest/arkode/Butcher_link.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