deal.II version GIT relicensing-2167-g9622207b8f 2024-11-21 12:40:00+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
TimeStepping::RungeKutta< VectorType > Class Template Referenceabstract

#include <deal.II/base/time_stepping.h>

Inheritance diagram for TimeStepping::RungeKutta< VectorType >:
Inheritance graph
[legend]

Public Member Functions

virtual ~RungeKutta () override=default
 
virtual void initialize (const runge_kutta_method method)=0
 
double evolve_one_time_step (std::vector< std::function< VectorType(const double, const VectorType &)> > &F, std::vector< std::function< VectorType(const double, const double, const VectorType &)> > &J_inverse, double t, double delta_t, VectorType &y) override
 
virtual double evolve_one_time_step (const std::function< VectorType(const double, const VectorType &)> &f, const std::function< VectorType(const double, const double, const VectorType &)> &id_minus_tau_J_inverse, double t, double delta_t, VectorType &y)=0
 
virtual const Statusget_status () const =0
 

Protected Attributes

unsigned int n_stages
 
std::vector< double > b
 
std::vector< double > c
 
std::vector< std::vector< double > > a
 

Detailed Description

template<typename VectorType>
class TimeStepping::RungeKutta< VectorType >

Base class for the Runge-Kutta method

Definition at line 221 of file time_stepping.h.

Constructor & Destructor Documentation

◆ ~RungeKutta()

template<typename VectorType >
virtual TimeStepping::RungeKutta< VectorType >::~RungeKutta ( )
overridevirtualdefault

Virtual destructor.

Member Function Documentation

◆ initialize()

template<typename VectorType >
virtual void TimeStepping::RungeKutta< VectorType >::initialize ( const runge_kutta_method  method)
pure virtual

◆ evolve_one_time_step() [1/2]

template<typename VectorType >
double TimeStepping::RungeKutta< VectorType >::evolve_one_time_step ( std::vector< std::function< VectorType(const double, const VectorType &)> > &  F,
std::vector< std::function< VectorType(const double, const double, const VectorType &)> > &  J_inverse,
double  t,
double  delta_t,
VectorType &  y 
)
overridevirtual

This function is used to advance from time t to t+ delta_t. F is a vector of functions \( f(t,y) \) that should be integrated, the input parameters are the time t and the vector y and the output is value of f at this point. J_inverse is a vector functions that compute the inverse of the Jacobians associated to the implicit problems. The input parameters are the time, \( \tau \), and a vector. The output is the value of function at this point. This function returns the time at the end of the time step. When using Runge-Kutta methods, F and J_inverse can only contain one element.

Implements TimeStepping::TimeStepping< VectorType >.

◆ evolve_one_time_step() [2/2]

template<typename VectorType >
virtual double TimeStepping::RungeKutta< VectorType >::evolve_one_time_step ( const std::function< VectorType(const double, const VectorType &)> &  f,
const std::function< VectorType(const double, const double, const VectorType &)> &  id_minus_tau_J_inverse,
double  t,
double  delta_t,
VectorType &  y 
)
pure virtual

Purely virtual function. This function is used to advance from time t to t+ delta_t. f is the function \( f(t,y) \) that should be integrated, the input parameters are the time t and the vector y and the output is value of f at this point. id_minus_tau_J_inverse is a function that computes \( inv(I-\tau J)\) where \( I \) is the identity matrix, \( \tau \) is given, and \( J \) is the Jacobian \( \frac{\partial f}{\partial y} \). The input parameters are the time, \( \tau \), and a vector. The output is the value of function at this point. evolve_one_time_step returns the time at the end of the time step.

Implemented in TimeStepping::ExplicitRungeKutta< VectorType >, TimeStepping::LowStorageRungeKutta< VectorType >, TimeStepping::ImplicitRungeKutta< VectorType >, and TimeStepping::EmbeddedExplicitRungeKutta< VectorType >.

◆ get_status()

template<typename VectorType >
virtual const Status & TimeStepping::TimeStepping< VectorType >::get_status ( ) const
pure virtualinherited

Member Data Documentation

◆ n_stages

template<typename VectorType >
unsigned int TimeStepping::RungeKutta< VectorType >::n_stages
protected

Number of stages of the Runge-Kutta method.

Definition at line 281 of file time_stepping.h.

◆ b

template<typename VectorType >
std::vector<double> TimeStepping::RungeKutta< VectorType >::b
protected

Butcher tableau coefficients.

Definition at line 286 of file time_stepping.h.

◆ c

template<typename VectorType >
std::vector<double> TimeStepping::RungeKutta< VectorType >::c
protected

Butcher tableau coefficients.

Definition at line 291 of file time_stepping.h.

◆ a

template<typename VectorType >
std::vector<std::vector<double> > TimeStepping::RungeKutta< VectorType >::a
protected

Butcher tableau coefficients.

Definition at line 296 of file time_stepping.h.


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