method_of_lines Module

Module that defines an abstract class for the concept of an ODE integrator. As this is just an abstract class, there is no implementation.


Uses

  • module~~method_of_lines~~UsesGraph module~method_of_lines method_of_lines module~kinds kinds module~method_of_lines->module~kinds module~equations equations module~method_of_lines->module~equations module~equations->module~kinds

Used by

  • module~~method_of_lines~~UsedByGraph module~method_of_lines method_of_lines module~abmv5_integrator abmv5_integrator module~abmv5_integrator->module~method_of_lines module~rk5_integrator rk5_integrator module~rk5_integrator->module~method_of_lines module~rk4_integrator rk4_integrator module~rk4_integrator->module~method_of_lines module~rk5_implementation rk5_implementation module~rk5_implementation->module~rk5_integrator module~all_integrators all_integrators module~all_integrators->module~abmv5_integrator module~all_integrators->module~rk5_integrator module~all_integrators->module~rk4_integrator module~abmv5_implementation abmv5_implementation module~abmv5_implementation->module~abmv5_integrator module~rk4_implementation rk4_implementation module~rk4_implementation->module~rk4_integrator proc~abmv5_init abmv5_init proc~abmv5_init->module~rk4_integrator proc~osc_schw_init osc_schw_init proc~osc_schw_init->module~all_integrators proc~geod_schw_init geod_schw_init proc~geod_schw_init->module~all_integrators program~test test program~test->module~all_integrators proc~scal_schw_init scal_schw_init proc~scal_schw_init->module~all_integrators

Contents


Abstract Interfaces

abstract interface

  • public function integrator_ntemp_interface(this) result(ntemp)

    The return value is the number of temporary storage levels are needed.

    Arguments

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

    The routine is called on this object.

    Return Value integer(kind=ip)

    The number of temporary storage levels needed.

abstract interface

  • public subroutine integrator_init_interface(this, eqs)

    Initialize an integrator.

    Arguments

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

    The routine is called on this object.

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

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

abstract interface

  • public subroutine integrator_step_interface(this)

    Take a time step.

    Arguments

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

    The routine is called on this object.

abstract interface

  • public subroutine integrator_shutdown_interface(this)

    Shut down this integrator.

    Arguments

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

    The routine is called on this object.


Derived Types

type, public, abstract :: integrator

An abstract class that defines an equation time integrator.

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.

Type-Bound Procedures

procedure(integrator_ntemp_interface), public, pass :: ntemp

A procedure that allows an integrator to tell the equations how much temporary storage is needed.

procedure(integrator_init_interface), public, pass :: init

A procedure that initializes an integrator.

procedure(integrator_step_interface), public, pass :: step

A procedure that takes one time step.

procedure(integrator_shutdown_interface), public, pass :: shutdown

A procedure that shuts down an integrator.