timedisc_rkfehlberg_mod Module Reference

subroutines for Runge-Kutta Fehlberg method More...

Data Types

type  coeff_type
 
type  timedisc_rkfehlberg
 

Functions/Subroutines

subroutine inittimedisc (this, Mesh, Physics, config, IO, ttype, tname)
 
subroutine inittimedisc_rkfehlberg (this, Mesh, Physics, config, IO)
 
subroutine solveode (this, Mesh, Physics, Sources, Fluxes, time, dt, err)
 
subroutine computecvar_rkfehlberg (this, Mesh, Physics, Fluxes, dt, m, coeff, cvar, cnew)
 perfroms the time step update using the RHS More...
 
subroutine setbutchertableau (this)
 set coefficients for RK-Fehlberg schemes More...
 
subroutine showbutchertableau (this)
 
subroutine finalize (this)
 

Variables

character(len=32), parameter odesolver_name = "Runge-Kutta Fehlberg"
 

Detailed Description

subroutines for Runge-Kutta Fehlberg method

Author
Björn Sperling
Tobias Illenseer
Lars Boesch

Reference:

  • [engeln2006] G.Engeln-Müllges & F.Reutter (Book)
  • [fehlberg1969] Fehlberg, E. (1969). Low-order classical Runge-Kutta formulas with stepsize control and their application to some heat transfer problems.

Function/Subroutine Documentation

◆ computecvar_rkfehlberg()

subroutine timedisc_rkfehlberg_mod::computecvar_rkfehlberg ( class(timedisc_rkfehlberg), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(physics_base), intent(inout)  Physics,
class(fluxes_base), intent(inout)  Fluxes,
real, intent(in)  dt,
integer, intent(in)  m,
type(coeff_type), dimension(m), intent(in)  coeff,
class(marray_compound), intent(inout)  cvar,
class(marray_compound), intent(inout)  cnew 
)
private

perfroms the time step update using the RHS

This subroutine computes new conservative variables according to the update formula:

\[ y_n^{(i)} = y_n + dt \sum_{j=1}^{m-1} a_{ij} coeff_j \]

Definition at line 276 of file timedisc_rkfehlberg.f90.

◆ finalize()

subroutine timedisc_rkfehlberg_mod::finalize ( class(timedisc_rkfehlberg this)
private

Definition at line 371 of file timedisc_rkfehlberg.f90.

◆ inittimedisc()

subroutine timedisc_rkfehlberg_mod::inittimedisc ( class(timedisc_rkfehlberg), intent(inout)  this,
class(mesh_base), intent(inout)  Mesh,
class(physics_base), intent(in)  Physics,
type(dict_typ), pointer  config,
type(dict_typ), pointer  IO,
integer, intent(in)  ttype,
character(len=32), intent(in)  tname 
)
private

Definition at line 95 of file timedisc_rkfehlberg.f90.

◆ inittimedisc_rkfehlberg()

subroutine timedisc_rkfehlberg_mod::inittimedisc_rkfehlberg ( class(timedisc_rkfehlberg), intent(inout)  this,
class(mesh_base), intent(inout)  Mesh,
class(physics_base), intent(in)  Physics,
type(dict_typ), pointer  config,
type(dict_typ), pointer  IO 
)

Definition at line 145 of file timedisc_rkfehlberg.f90.

◆ setbutchertableau()

subroutine timedisc_rkfehlberg_mod::setbutchertableau ( class(timedisc_rkfehlberg this)
private

set coefficients for RK-Fehlberg schemes

Definition at line 304 of file timedisc_rkfehlberg.f90.

◆ showbutchertableau()

subroutine timedisc_rkfehlberg_mod::showbutchertableau ( class(timedisc_rkfehlberg), intent(inout)  this)
private

Definition at line 337 of file timedisc_rkfehlberg.f90.

◆ solveode()

subroutine timedisc_rkfehlberg_mod::solveode ( class(timedisc_rkfehlberg), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(physics_base), intent(inout)  Physics,
class(sources_base), pointer  Sources,
class(fluxes_base), intent(inout)  Fluxes,
real, intent(in)  time,
real, intent(inout)  dt,
real, intent(inout)  err 
)
private

Definition at line 170 of file timedisc_rkfehlberg.f90.

Variable Documentation

◆ odesolver_name

character(len=32), parameter timedisc_rkfehlberg_mod::odesolver_name = "Runge-Kutta Fehlberg"
private

Definition at line 83 of file timedisc_rkfehlberg.f90.