TimeStepperBoostABM_impl< VectorType, SparseMatrixType, dim > Class Template Reference#

DiFfRG: TimeStepperBoostABM_impl< VectorType, SparseMatrixType, dim > Class Template Reference
DiFfRG
Discretization Framework for functional Renormalization Group flows
TimeStepperBoostABM_impl< VectorType, SparseMatrixType, dim > Class Template Reference

Explicit 8-step Adams-Bashforth-Moulton method, with optional step-size control. More...

#include <boost_abm.hh>

Inheritance diagram for TimeStepperBoostABM_impl< VectorType, SparseMatrixType, dim >:

Public Types

using NumberType = typename Base::NumberType
 
using InverseSparseMatrixType = typename get_type::InverseSparseMatrixType<SparseMatrixType>
 
using BlockVectorType = typename Base::BlockVectorType
 

Public Member Functions

 TimeStepperBoostABM_impl (const ConfigTree &config, AbstractAssembler< VectorType, SparseMatrixType, dim > &assembler, OutputSession_impl< dim, VectorType > &data_out)
 Construct without mesh adaptation; see AbstractTimestepper.
 
 TimeStepperBoostABM_impl (const ConfigTree &config, AbstractAssembler< VectorType, SparseMatrixType, dim > &assembler, OutputSession_impl< dim, VectorType > &data_out, AbstractAdaptor< VectorType > &adaptor)
 Construct with a mesh adaptor; see AbstractTimestepper.
 
virtual void run_segment (AbstractFlowingVariables< NumberType, VectorType > &initial_condition, const double t_start, const double t_stop) override
 

Detailed Description

template<typename VectorType, typename SparseMatrixType = dealii::SparseMatrix<get_type::NumberType<VectorType>>, uint dim = 0>
class DiFfRG::TimeStepperBoostABM_impl< VectorType, SparseMatrixType, dim >

Explicit 8-step Adams-Bashforth-Moulton method, with optional step-size control.

Integrates \(\dot u = -M^{-1} R(u, v)\) and \(\dot v = -D(v, u)\) (see abstract_timestepper.hh) with an Adams-Bashforth predictor and one Adams-Moulton corrector, both of order 8, which costs two evaluations of the right-hand side per step. The first 7 steps, before enough history exists, are Cash-Karp 5(4) Runge-Kutta steps.

The base step is the largest \(\Delta t \le\) /timestepping/explicit/dt that divides the interval into equal steps. With /timestepping/explicit/error_control (default true) the local error is estimated from the difference between predictor and corrector; a step that fails the test \(|e_i| \le \mathrm{abs\_tol} + \mathrm{rel\_tol}\, |y_i|\) is retaken at half the step size; at explicit/minimal_dt it is accepted anyway. After 16 steps in a row with an error below a quarter of the tolerance the step size doubles, up to the base step. Without error control every step is the base step.

Handles FE problems with or without variables and pure-variables systems (dim == 0). Output frames are linearly interpolated between steps. Serial only; no mesh adaptation (constructing with an adaptor other than NoAdaptivity throws).

Member Typedef Documentation

◆ BlockVectorType

template<typename VectorType , typename SparseMatrixType = dealii::SparseMatrix<get_type::NumberType<VectorType>>, uint dim = 0>
using BlockVectorType = typename Base::BlockVectorType

◆ InverseSparseMatrixType

template<typename VectorType , typename SparseMatrixType = dealii::SparseMatrix<get_type::NumberType<VectorType>>, uint dim = 0>
using InverseSparseMatrixType = typename get_type::InverseSparseMatrixType<SparseMatrixType>

◆ NumberType

template<typename VectorType , typename SparseMatrixType = dealii::SparseMatrix<get_type::NumberType<VectorType>>, uint dim = 0>
using NumberType = typename Base::NumberType

Constructor & Destructor Documentation

◆ TimeStepperBoostABM_impl() [1/2]

template<typename VectorType , typename SparseMatrixType = dealii::SparseMatrix<get_type::NumberType<VectorType>>, uint dim = 0>
TimeStepperBoostABM_impl ( const ConfigTree & config,
AbstractAssembler< VectorType, SparseMatrixType, dim > & assembler,
OutputSession_impl< dim, VectorType > & data_out )
inline

Construct without mesh adaptation; see AbstractTimestepper.

◆ TimeStepperBoostABM_impl() [2/2]

template<typename VectorType , typename SparseMatrixType = dealii::SparseMatrix<get_type::NumberType<VectorType>>, uint dim = 0>
TimeStepperBoostABM_impl ( const ConfigTree & config,
AbstractAssembler< VectorType, SparseMatrixType, dim > & assembler,
OutputSession_impl< dim, VectorType > & data_out,
AbstractAdaptor< VectorType > & adaptor )
inline

Construct with a mesh adaptor; see AbstractTimestepper.

Member Function Documentation

◆ run_segment()

template<typename VectorType , typename SparseMatrixType = dealii::SparseMatrix<get_type::NumberType<VectorType>>, uint dim = 0>
virtual void run_segment ( AbstractFlowingVariables< NumberType, VectorType > & initial_condition,
const double t_start,
const double t_stop )
overridevirtual

The documentation for this class was generated from the following file:
  • /home/runner/work/DiFfRG/DiFfRG/DiFfRG/include/DiFfRG/timestepping/boost_abm.hh