Reference documentation for deal.II version 9.1.1
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
TimeStepping::ExplicitRungeKutta< VectorType > Class Template Reference

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

Inheritance diagram for TimeStepping::ExplicitRungeKutta< VectorType >:
[legend]

Classes

struct  Status
 

Public Member Functions

 ExplicitRungeKutta ()=default
 
 ExplicitRungeKutta (const runge_kutta_method method)
 
void initialize (const runge_kutta_method method) override
 
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) override
 
double evolve_one_time_step (const std::function< VectorType(const double, const VectorType &)> &f, double t, double delta_t, VectorType &y)
 
const Statusget_status () const override
 
- Public Member Functions inherited from TimeStepping::RungeKutta< VectorType >
virtual ~RungeKutta () override=default
 
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
 
- Public Member Functions inherited from TimeStepping::TimeStepping< VectorType >
virtual ~TimeStepping ()=default
 

Private Member Functions

void compute_stages (const std::function< VectorType(const double, const VectorType &)> &f, const double t, const double delta_t, const VectorType &y, std::vector< VectorType > &f_stages) const
 

Private Attributes

Status status
 

Additional Inherited Members

- Protected Attributes inherited from TimeStepping::RungeKutta< VectorType >
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::ExplicitRungeKutta< VectorType >

ExplicitRungeKutta is derived from RungeKutta and implement the explicit methods.

Definition at line 231 of file time_stepping.h.

Constructor & Destructor Documentation

◆ ExplicitRungeKutta() [1/2]

template<typename VectorType>
TimeStepping::ExplicitRungeKutta< VectorType >::ExplicitRungeKutta ( )
default

Default constructor. This constructor creates an object for which you will want to call initialize(runge_kutta_method) before it can be used.

◆ ExplicitRungeKutta() [2/2]

template<typename VectorType>
TimeStepping::ExplicitRungeKutta< VectorType >::ExplicitRungeKutta ( const runge_kutta_method  method)

Constructor. This function calls initialize(runge_kutta_method).

Member Function Documentation

◆ initialize()

template<typename VectorType>
void TimeStepping::ExplicitRungeKutta< VectorType >::initialize ( const runge_kutta_method  method)
overridevirtual

Initialize the explicit Runge-Kutta method.

Implements TimeStepping::RungeKutta< VectorType >.

◆ evolve_one_time_step() [1/2]

template<typename VectorType>
double TimeStepping::ExplicitRungeKutta< 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 
)
overridevirtual

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 J}{\partial y} \). The input parameter 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.

Implements TimeStepping::RungeKutta< VectorType >.

◆ evolve_one_time_step() [2/2]

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

This function is used to advance from time t to t+ delta_t. This function is similar to the one derived from RungeKutta, but does not required id_minus_tau_J_inverse because it is not used for explicit methods. evolve_one_time_step returns the time at the end of the time step.

◆ get_status()

template<typename VectorType>
const Status& TimeStepping::ExplicitRungeKutta< VectorType >::get_status ( ) const
overridevirtual

Return the status of the current object.

Implements TimeStepping::TimeStepping< VectorType >.

◆ compute_stages()

template<typename VectorType>
void TimeStepping::ExplicitRungeKutta< VectorType >::compute_stages ( const std::function< VectorType(const double, const VectorType &)> &  f,
const double  t,
const double  delta_t,
const VectorType &  y,
std::vector< VectorType > &  f_stages 
) const
private

Compute the different stages needed.

Member Data Documentation

◆ status

template<typename VectorType>
Status TimeStepping::ExplicitRungeKutta< VectorType >::status
private

Status structure of the object.

Definition at line 322 of file time_stepping.h.


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