TimeStepperSUNDIALS_IDA_BoostRK< VectorType, SparseMatrixType, dim, LinearSolver, prec > Class Template Reference#
|
DiFfRG
|
Public Types |
Public Member Functions |
Private Types |
Private Member Functions |
List of all members
DiFfRG::TimeStepperSUNDIALS_IDA_BoostRK< VectorType, SparseMatrixType, dim, LinearSolver, prec > Class Template Reference
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...
#include <sundials_ida_boost_rk.hh>
Inheritance diagram for DiFfRG::TimeStepperSUNDIALS_IDA_BoostRK< VectorType, SparseMatrixType, dim, LinearSolver, prec >:
Public Types | |
| using | NumberType = typename Base::NumberType |
| using | InverseSparseMatrixType = typename Base::InverseSparseMatrixType |
| using | BlockVectorType = typename Base::BlockVectorType |
| using | error_stepper_type = typename stepperChoice<prec>::value |
Public Member Functions | |
| 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. | |
Public Member Functions inherited from DiFfRG::AbstractTimestepper< VectorType, SparseMatrixType, dim > | |
| 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. | |
Private Types | |
| using | Base = AbstractTimestepper<VectorType, SparseMatrixType, dim> |
Private Member Functions | |
| void | run (BlockVectorType &initial_data, const double t_start, const double t_stop) |
| void | update_variables (VectorType &variable_y, const VectorType &spatial_y, const double t) |
Detailed Description
template<typename VectorType, typename SparseMatrixType, uint dim, template< typename, typename > typename LinearSolver, int prec>
class DiFfRG::TimeStepperSUNDIALS_IDA_BoostRK< VectorType, SparseMatrixType, dim, LinearSolver, 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)
Member Typedef Documentation
◆ Base
template<typename VectorType , typename SparseMatrixType , uint dim, template< typename, typename > typename LinearSolver, int prec>
|
private |
◆ BlockVectorType
template<typename VectorType , typename SparseMatrixType , uint dim, template< typename, typename > typename LinearSolver, int prec>
| using DiFfRG::TimeStepperSUNDIALS_IDA_BoostRK< VectorType, SparseMatrixType, dim, LinearSolver, prec >::BlockVectorType = typename Base::BlockVectorType |
◆ error_stepper_type
template<typename VectorType , typename SparseMatrixType , uint dim, template< typename, typename > typename LinearSolver, int prec>
| using DiFfRG::TimeStepperSUNDIALS_IDA_BoostRK< VectorType, SparseMatrixType, dim, LinearSolver, prec >::error_stepper_type = typename stepperChoice<prec>::value |
◆ InverseSparseMatrixType
template<typename VectorType , typename SparseMatrixType , uint dim, template< typename, typename > typename LinearSolver, int prec>
| using DiFfRG::TimeStepperSUNDIALS_IDA_BoostRK< VectorType, SparseMatrixType, dim, LinearSolver, prec >::InverseSparseMatrixType = typename Base::InverseSparseMatrixType |
◆ NumberType
template<typename VectorType , typename SparseMatrixType , uint dim, template< typename, typename > typename LinearSolver, int prec>
| using DiFfRG::TimeStepperSUNDIALS_IDA_BoostRK< VectorType, SparseMatrixType, dim, LinearSolver, prec >::NumberType = typename Base::NumberType |
Member Function Documentation
◆ run() [1/2]
template<typename VectorType , typename SparseMatrixType , uint dim, template< typename, typename > typename LinearSolver, int prec>
|
overridevirtual |
Any derived class must implement this method to run the timestepping algorithm.
- Parameters
-
initial_condition A pointer to a flowing variables object that contains the initial condition. t_start The start time of the simulation. t_stop The run method will evolve the system from t_start to t_stop.
Implements DiFfRG::AbstractTimestepper< VectorType, SparseMatrixType, dim >.
◆ run() [2/2]
template<typename VectorType , typename SparseMatrixType , uint dim, template< typename, typename > typename LinearSolver, int prec>
|
private |
◆ update_variables()
template<typename VectorType , typename SparseMatrixType , uint dim, template< typename, typename > typename LinearSolver, int prec>
|
private |
The documentation for this class was generated from the following file:
- /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/timestepping/sundials_ida_boost_rk.hh
Generated by
Public Member Functions inherited from