A class to perform time stepping using the adaptive Boost Runge-Kutta method for the explicit part and SUNDIALS IDA for the implicit part. In this scheme, the IDA stepper is the controller and the Boost RK 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, int prec>
class DiFfRG::TimeStepperSUNDIALS_IDA_BoostRK< VectorType, SparseMatrixType, dim, LinearSolver, prec >
A class to perform time stepping using the adaptive Boost Runge-Kutta method for the explicit part and SUNDIALS IDA for the implicit part. In this scheme, the IDA stepper is the controller and the Boost RK stepper solves the explicit part of the problem on-demand.
- Template Parameters
-
VectorType | Type of the vector |
dim | Dimension of the problem |
prec | Algorithm choice: 0 for Cash-Karp54 (5th order), 1 for Fehlberg78 (8th order) |