rk4 Derived Type

type, public, extends(integrator) :: rk4

A 4th order low storage Runge-Kutta ODE integrator.


Inherits

type~~rk4~~InheritsGraph type~rk4 rk4 type~integrator integrator type~rk4->type~integrator type~equation_pointer equation_pointer type~integrator->type~equation_pointer eqs type~equation equation type~equation_pointer->type~equation p

Contents

Source Code

rk4

Components

TypeVisibility AttributesNameInitial
integer(kind=ip), public :: nequations

The number of equations to integrate.

class(equation_pointer), public, dimension(:), allocatable:: eqs

A 1d array of equation pointers. Will be of length nequations.

integer(kind=ip), public :: ntmp =1

1 level of temporary storage are required.


Type-Bound Procedures

procedure, public :: ntemp => rk4_ntemp

Routine to provide information about temporary storage levels is provided by rk4_ntemp.

  • interface

    public module function rk4_ntemp(this) result(ntemp)

    Routine that reports how many temporary storage levels are needed.

    Arguments

    Type IntentOptional AttributesName
    class(rk4), intent(in) :: this

    The routine is called on this object.

    Return Value integer(kind=ip)

    The return value is the number of required temorary storage levels.

procedure, public :: init => rk4_init

Initialization routine is provided by rk4_init.

  • interface

    public module subroutine rk4_init(this, eqs)

    Routine that initializes the integrator.

    Arguments

    Type IntentOptional AttributesName
    class(rk4), intent(inout) :: this

    The routine is called on this object.

    type(equation_pointer), intent(in), dimension(:):: eqs

    A 1d-array of pointers to equations that will be integrated.

procedure, public :: step => rk4_step

Stepping routine is provided by rk4_step.

  • interface

    public module subroutine rk4_step(this)

    Routine that takes a time step.

    Arguments

    Type IntentOptional AttributesName
    class(rk4), intent(inout) :: this

    The routine is called on this object.

procedure, public :: shutdown => rk4_shutdown

Shut down routine is provided by rk4_shutdown.

  • interface

    public module subroutine rk4_shutdown(this)

    Routine that shuts downs the integrator.

    Arguments

    Type IntentOptional AttributesName
    class(rk4), intent(inout) :: this

    The routine is called on this object.

Source Code

  type, extends(integrator) :: rk4
  !! A 4th order low storage Runge-Kutta ODE integrator.
    integer(ip) :: ntmp = 1
    !! 1 level of temporary storage are required.
  contains
    procedure :: ntemp => rk4_ntemp
    !! Routine to provide information about temporary storage levels is
    !! provided by [[rk4_ntemp]].
    procedure :: init => rk4_init
    !! Initialization routine is provided by [[rk4_init]].
    procedure :: step => rk4_step
    !! Stepping routine is provided by [[rk4_step]].
    procedure :: shutdown => rk4_shutdown
    !! Shut down routine is provided by [[rk4_shutdown]].
  end type rk4