/__w/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/timestepping/sundials_ida_boost_rk.hh Source File#

DiFfRG: /__w/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/timestepping/sundials_ida_boost_rk.hh Source File
DiFfRG
Discretization Framework for functional Renormalization Group flows
sundials_ida_boost_rk.hh
Go to the documentation of this file.
1#pragma once
2
3// DiFfRG
12
13namespace DiFfRG
14{
24 template <typename VectorType, typename SparseMatrixType, uint dim,
25 template <typename, typename> typename LinearSolver, int prec>
26 class TimeStepperSUNDIALS_IDA_BoostRK : public AbstractTimestepper<VectorType, SparseMatrixType, dim>
27 {
29
30 public:
31 using NumberType = typename Base::NumberType;
34
36 using Base::Base;
39
41
42 virtual void run(AbstractFlowingVariables<NumberType> *initial_condition, const double t_start,
43 const double t_stop) override;
44
45 private:
46 void run(BlockVectorType &initial_data, const double t_start, const double t_stop);
47 void update_variables(VectorType &variable_y, const VectorType &spatial_y, const double t);
48 };
49
58 template <typename VectorType, typename SparseMatrixType, uint dim,
59 template <typename, typename> typename LinearSolver>
62
71 template <typename VectorType, typename SparseMatrixType, uint dim,
72 template <typename, typename> typename LinearSolver>
75} // namespace DiFfRG
A class to set up initial data for whatever discretization we have chosen. Also used to switch/manage...
Definition abstract_data.hh:18
The abstract base class for all timestepping algorithms. It provides a standard constructor which pop...
Definition abstract_timestepper.hh:52
VectorType VectorType
Definition abstract_timestepper.hh:55
dealii::BlockVector< NumberType > BlockVectorType
Definition abstract_timestepper.hh:60
int verbosity
Definition abstract_timestepper.hh:151
AbstractAssembler< VectorType, SparseMatrixType, dim > * assembler
Definition abstract_timestepper.hh:141
struct DiFfRG::AbstractTimestepper::ExplicitParameters expl
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.
Definition abstract_timestepper.hh:267
DataOutput< dim, VectorType > * data_out
Definition abstract_timestepper.hh:142
AbstractAdaptor< VectorType > * adaptor
Definition abstract_timestepper.hh:143
typename get_type::NumberType< VectorType > NumberType
Definition abstract_timestepper.hh:56
typename get_type::InverseSparseMatrixType< SparseMatrixType > InverseSparseMatrixType
Definition abstract_timestepper.hh:58
const JSONValue json
Definition abstract_timestepper.hh:140
struct DiFfRG::AbstractTimestepper::ImplicitParameters impl
double output_dt
Definition abstract_timestepper.hh:152
A class to perform time stepping using the adaptive Boost Runge-Kutta method for the explicit part an...
Definition sundials_ida_boost_rk.hh:27
typename stepperChoice< prec >::value error_stepper_type
Definition sundials_ida_boost_rk.hh:40
void run(BlockVectorType &initial_data, const double t_start, const double t_stop)
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.
void update_variables(VectorType &variable_y, const VectorType &spatial_y, const double t)
typename Base::BlockVectorType BlockVectorType
Definition sundials_ida_boost_rk.hh:33
typename Base::InverseSparseMatrixType InverseSparseMatrixType
Definition sundials_ida_boost_rk.hh:32
typename Base::NumberType NumberType
Definition sundials_ida_boost_rk.hh:31
Definition complex_math.hh:10
unsigned int uint
Definition utils.hh:24
TimeStepperSUNDIALS_IDA_BoostRK< VectorType, SparseMatrixType, dim, LinearSolver, 1 > TimeStepperSUNDIALS_IDA_BoostRK78
A class to perform time stepping using the adaptive Boost Runge-Kutta Fehlberg78 method for the expli...
Definition sundials_ida_boost_rk.hh:74
TimeStepperSUNDIALS_IDA_BoostRK< VectorType, SparseMatrixType, dim, LinearSolver, 0 > TimeStepperSUNDIALS_IDA_BoostRK54
A class to perform time stepping using the adaptive Boost Runge-Kutta Cash-Karp54 method for the expl...
Definition sundials_ida_boost_rk.hh:61
std::conditional_t< prec==0, error_stepper_type_0, error_stepper_type_1 > value
Definition boost_rk.hh:24