This timestepping class utilizes the ARKode solver from SUNDIALS for explicitly evolving the variables and SUNDIALS IDA for implicitly evolving the spatial discretization. In this scheme, the IDA stepper is the controller and the ARKode stepper solves the explicit part of the problem on-demand.
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.
|
|
| 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_IDA_ARKode< VectorType, SparseMatrixType, dim, LinearSolver >
This timestepping class utilizes the ARKode solver from SUNDIALS for explicitly evolving the variables and SUNDIALS IDA for implicitly evolving the spatial discretization. In this scheme, the IDA stepper is the controller and the ARKode stepper solves the explicit part of the problem on-demand.
- Template Parameters
-
VectorType | This must be Vector<NumberType>. Other types are not supported, as we use a BlockVector internally to store the solution. |
dim | The dimensionality of the spatial discretization |