abmv5 Derived Type

type, public, extends(integrator) :: abmv5

An Adams-Bashford-Moulton multi-value ODE integrator class.


Inherits

type~~abmv5~~InheritsGraph type~abmv5 abmv5 type~integrator integrator type~abmv5->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


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 =10

10 levels of temporary storage are required.

integer(kind=ip), public :: order =5

The order of the method is 5.

real(kind=wp), public :: last_dt

Variable that keeps track of the last timestep.


Type-Bound Procedures

procedure, public :: ntemp => abmv5_ntemp

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

  • interface

    public module function abmv5_ntemp(this) result(ntemp)

    Routine that reports how many temporary storage levels are needed.

    Arguments

    Type IntentOptional AttributesName
    class(abmv5), 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 => abmv5_init

Initialization routine is provided by abmv5_init.

  • interface

    public module subroutine abmv5_init(this, eqs)

    Routine that initializes the integrator.

    Arguments

    Type IntentOptional AttributesName
    class(abmv5), 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 => abmv5_step

Stepping routine is provided by abmv5_step.

  • interface

    public module subroutine abmv5_step(this)

    Routine that takes a time step.

    Arguments

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

    The routine is called on this object.

procedure, public :: shutdown => abmv5_shutdown

Shut down routine is provided by abmv5_shutdown.

  • interface

    public module subroutine abmv5_shutdown(this)

    Routine that shuts downs the integrator.

    Arguments

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

    The routine is called on this object.

Source Code

  type, extends(integrator) :: abmv5
  !! An Adams-Bashford-Moulton multi-value ODE integrator class.
    integer(ip) :: ntmp = 10
    !! 10 levels of temporary storage are required.
    integer(ip) :: order = 5
    !! The order of the method is 5.
    real(wp) :: last_dt
    !! Variable that keeps track of the last timestep.
  contains
    procedure :: ntemp => abmv5_ntemp
    !! Routine to provide information about temporary storage levels is
    !! provided by [[abmv5_ntemp]].
    procedure :: init => abmv5_init
    !! Initialization routine is provided by [[abmv5_init]].
    procedure :: step => abmv5_step
    !! Stepping routine is provided by [[abmv5_step]].
    procedure :: shutdown => abmv5_shutdown
    !! Shut down routine is provided by [[abmv5_shutdown]].
  end type abmv5