DiFfRG
Loading...
Searching...
No Matches
DiFfRG::TimeStepperBoostRK< VectorType, SparseMatrixType, dim, prec > Class Template Reference

A class to perform time stepping using adaptive Boost Runge-Kutta methods. This stepper uses adaptive time steps and is fully explicit. More...

#include <boost_rk.hh>

Inheritance diagram for DiFfRG::TimeStepperBoostRK< VectorType, SparseMatrixType, dim, prec >:
DiFfRG::AbstractTimestepper< VectorType, SparseMatrixType, dim >

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
 Run the time stepping 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 (VectorType &initial_data, const double t_start, const double t_stop)
 
void run (BlockVectorType &initial_data, const double t_start, const double t_stop)
 
void run_vars (VectorType &initial_data, const double t_start, const double t_stop)
 

Additional Inherited Members

- Protected Types inherited from DiFfRG::AbstractTimestepper< VectorType, SparseMatrixType, dim >
using VectorType
 
using NumberType
 
using SparseMatrixType
 
using InverseSparseMatrixType
 
using BlockVectorType
 
- Protected Member Functions inherited from DiFfRG::AbstractTimestepper< VectorType, SparseMatrixType, dim >
void console_out (const double t, const std::string name, const int verbosity_level, const double calc_dt_ms=-1.0) const
 Pretty-print the status of the timestepping algorithm to the console.
 
- Protected Attributes inherited from DiFfRG::AbstractTimestepper< VectorType, SparseMatrixType, dim >
const JSONValue json
 
AbstractAssembler< VectorType, SparseMatrixType, dim > * assembler
 
DataOutput< dim, VectorType > * data_out
 
AbstractAdaptor< VectorType > * adaptor
 
const std::chrono::time_point< std::chrono::high_resolution_clock > start_time
 
std::shared_ptr< NoAdaptivity< VectorType > > adaptor_default
 
std::shared_ptr< DataOutput< dim, VectorType > > data_out_default
 
double Lambda
 
int verbosity
 
double output_dt
 
struct DiFfRG::AbstractTimestepper::implicitParameters impl
 
struct DiFfRG::AbstractTimestepper::explicitParameters expl
 
- Static Protected Attributes inherited from DiFfRG::AbstractTimestepper< VectorType, SparseMatrixType, dim >
static constexpr uint dim
 

Detailed Description

template<typename VectorType, typename SparseMatrixType, uint dim, int prec>
class DiFfRG::TimeStepperBoostRK< VectorType, SparseMatrixType, dim, prec >

A class to perform time stepping using adaptive Boost Runge-Kutta methods. This stepper uses adaptive time steps and is fully explicit.

Template Parameters
VectorTypeType of the vector
dimDimension of the problem
precAlgorithm choice: 0 for Cash-Karp54 (5th order), 1 for Fehlberg78 (8th order)

Member Typedef Documentation

◆ Base

template<typename VectorType , typename SparseMatrixType , uint dim, int prec>
using DiFfRG::TimeStepperBoostRK< VectorType, SparseMatrixType, dim, prec >::Base = AbstractTimestepper<VectorType, SparseMatrixType, dim>
private

◆ BlockVectorType

template<typename VectorType , typename SparseMatrixType , uint dim, int prec>
using DiFfRG::TimeStepperBoostRK< VectorType, SparseMatrixType, dim, prec >::BlockVectorType = typename Base::BlockVectorType

◆ error_stepper_type

template<typename VectorType , typename SparseMatrixType , uint dim, int prec>
using DiFfRG::TimeStepperBoostRK< VectorType, SparseMatrixType, dim, prec >::error_stepper_type = typename stepperChoice<prec>::value

◆ InverseSparseMatrixType

template<typename VectorType , typename SparseMatrixType , uint dim, int prec>
using DiFfRG::TimeStepperBoostRK< VectorType, SparseMatrixType, dim, prec >::InverseSparseMatrixType = typename Base::InverseSparseMatrixType

◆ NumberType

template<typename VectorType , typename SparseMatrixType , uint dim, int prec>
using DiFfRG::TimeStepperBoostRK< VectorType, SparseMatrixType, dim, prec >::NumberType = typename Base::NumberType

Member Function Documentation

◆ run() [1/3]

template<typename VectorType , typename SparseMatrixType , uint dim, int prec>
virtual void DiFfRG::TimeStepperBoostRK< VectorType, SparseMatrixType, dim, prec >::run ( AbstractFlowingVariables< NumberType > * initial_condition,
const double t_start,
const double t_stop )
overridevirtual

Run the time stepping algorithm.

Implements DiFfRG::AbstractTimestepper< VectorType, SparseMatrixType, dim >.

◆ run() [2/3]

template<typename VectorType , typename SparseMatrixType , uint dim, int prec>
void DiFfRG::TimeStepperBoostRK< VectorType, SparseMatrixType, dim, prec >::run ( BlockVectorType & initial_data,
const double t_start,
const double t_stop )
private

◆ run() [3/3]

template<typename VectorType , typename SparseMatrixType , uint dim, int prec>
void DiFfRG::TimeStepperBoostRK< VectorType, SparseMatrixType, dim, prec >::run ( VectorType & initial_data,
const double t_start,
const double t_stop )
private

◆ run_vars()

template<typename VectorType , typename SparseMatrixType , uint dim, int prec>
void DiFfRG::TimeStepperBoostRK< VectorType, SparseMatrixType, dim, prec >::run_vars ( VectorType & initial_data,
const double t_start,
const double t_stop )
private

The documentation for this class was generated from the following file: