runge_kutta_m Module

Runge-Kutta time stepping scheme - Only fully explicit - Right hand side via call to external subroutine - More generic than KArniadakis, i.e. not relying on variables or meshes


Used by


Contents


Interfaces

interface

  • public pure module function get_ncount(self)

    Returns ncount

    Arguments

    Type IntentOptional Attributes Name
    class(runge_kutta_t), intent(in) :: self

    Instance of the type

    Return Value integer

interface

  • public pure module function get_ndim(self)

    Returns ndim

    Arguments

    Type IntentOptional Attributes Name
    class(runge_kutta_t), intent(in) :: self

    Instance of the type

    Return Value integer

interface

  • public pure module function get_order(self)

    Returns order

    Arguments

    Type IntentOptional Attributes Name
    class(runge_kutta_t), intent(in) :: self

    Instance of the type

    Return Value integer

interface

  • public module subroutine init_runge_kutta(self, ndim, order)

    Initialises a Runge Kutta integrator

    Arguments

    Type IntentOptional Attributes Name
    class(runge_kutta_t), intent(inout) :: self

    Instance of the type

    integer, intent(in) :: ndim

    Dimension of problem

    integer, intent(in) :: order

    Order of time-stepping scheme

interface

  • public module subroutine advance(self, dtau, tau, y, rhs)

    Right hand side of differential equation

    Arguments

    Type IntentOptional Attributes Name
    class(runge_kutta_t), intent(inout) :: self

    Instance of the type

    real(kind=GP), intent(in) :: dtau

    Size of timestep

    real(kind=GP), intent(in) :: tau

    Time at input

    real(kind=GP), intent(inout), dimension(self%ndim) :: y

    On input: variable values at tau, at output at tau+dtau

    subroutine rhs(ndim, tau, y, dy)
    Arguments
    Type IntentOptional Attributes Name
    integer, intent(in) :: ndim
    real(kind=GP), intent(in) :: tau
    real(kind=GP), intent(in), dimension(ndim) :: y
    real(kind=GP), intent(out), dimension(ndim) :: dy

interface

  • public module subroutine display_runge_kutta(self)

    Displays basic information of runge_kutta

    Arguments

    Type IntentOptional Attributes Name
    class(runge_kutta_t), intent(in) :: self

    Instance of the type

interface

  • public module subroutine destructor(self)

    Frees memory associated with runge_kutta

    Arguments

    Type IntentOptional Attributes Name
    type(runge_kutta_t), intent(inout) :: self

    Instance of the type


Derived Types

type, public ::  runge_kutta_t

Datatype for Runge-Kutta integrator

Finalizations Procedures

final :: destructor

Type-Bound Procedures

procedure , public :: init => init_runge_kutta Interface
procedure , public :: get_ncount Interface
procedure , public :: get_ndim Interface
procedure , public :: get_order Interface
procedure , public :: advance Interface
procedure , public :: display => display_runge_kutta Interface