This timestepping class utilizes the ARKode solver from SUNDIALS. It is specifically meant to be used for a spatial discretization which uses implicit timestepping and coupled to additional variables which are evolved explicitly. Therefore, this solver is an ImEx solver and requires the dynamics of the additional variables to be far slower than the dynamics of the spatial discretization. In the used Assembler, the two additional methods residual_variables and set_additional_data must be implemented, which are used to compute the explicit residual and to make the additional variables available to the implicit residual.
More...
|
virtual void | run (AbstractFlowingVariables< NumberType > *initial_condition, const double t_start, const double t_stop) override |
| Any derived class must implement this method to run the timestepping algorithm.
|
|
void | run_explicit (AbstractFlowingVariables< NumberType > *initial_condition, const double t_start, const double t_stop) |
| Run the timestepping algorithm with the given initial condition. This method treats the entire system explicitly, e.g. if the spatial discretization is not yet stiff.
|
|
| AbstractTimestepper (const JSONValue &json, AbstractAssembler< VectorType, SparseMatrixType, dim > *assembler, DataOutput< dim, VectorType > *data_out=nullptr, AbstractAdaptor< VectorType > *adaptor=nullptr) |
| Construct a new Abstract Timestepper object.
|
|
DataOutput< dim, VectorType > * | get_data_out () |
| Utility function to obtain a DataOutput object. If no DataOutput object is provided, a default one is created.
|
|
AbstractAdaptor< VectorType > * | get_adaptor () |
| Utility function to obtain an Adaptor object. If no Adaptor object is provided, a default one is created, which is the NoAdaptivity object, i.e. no mesh adaptivity is used.
|
|
template<typename
VectorType, typename
SparseMatrixType,
uint dim, template< typename, typename > typename LinearSolver>
class DiFfRG::TimeStepperSUNDIALS_ARKode< VectorType, SparseMatrixType, dim, LinearSolver >
This timestepping class utilizes the ARKode solver from SUNDIALS. It is specifically meant to be used for a spatial discretization which uses implicit timestepping and coupled to additional variables which are evolved explicitly. Therefore, this solver is an ImEx solver and requires the dynamics of the additional variables to be far slower than the dynamics of the spatial discretization. In the used Assembler, the two additional methods residual_variables and set_additional_data must be implemented, which are used to compute the explicit residual and to make the additional variables available to the implicit residual.
- Template Parameters
-
VectorType | This must be Vector<NumberType>. Other types are currently not supported, as we use a BlockVector internally to store the solution. |
dim | The dimensionality of the spatial discretization |