explicit_rk_integrator_procedures Submodule

Contains module procedures associated with the explicit RK integrator class



Module Subroutines

module subroutine initRKIntegrator(this, modelList, termGroups, order, tableau, evolvesTimeVar, dtController, initialTimestep)

Constructs an RK integrator with initial evaluated model indices and correspoding term groups if those are present. If neither order or tableau are provided defaults to forward Euler time-stepping. Possible order values are 1,2,3,4 where 2 is the midpoint method, 3 is SSPRK3, and 4 is the standard RK4 method.

Arguments

Type IntentOptional Attributes Name
class(ExplicitRKIntegrator), intent(inout) :: this
integer(kind=ik), intent(in), optional, dimension(:) :: modelList

List of models this integrator will be responsible for

type(IntArray), intent(in), optional, dimension(:) :: termGroups

Term groups this integrator is responsible for - should conform with modelList

integer(kind=ik), intent(in), optional :: order

Runge-Kutta order

type(BTableau), intent(in), optional :: tableau

User-defined Butcher tableau

logical, intent(in), optional :: evolvesTimeVar

Set to true if this integrator is allowed to change the "time" varible (if present in passed variable container)

class(TimestepController), intent(in), optional :: dtController

User-supplied timestep controller object

real(kind=rk), intent(in), optional :: initialTimestep

Default timestep

module subroutine integrateRK(this, manipulatedModeller, outputVars, inputVars)

Implementation of abstract manipulate routine for the case of Runge-Kutta integrator

Arguments

Type IntentOptional Attributes Name
class(ExplicitRKIntegrator), intent(inout) :: this
class(ModellerSurrogate), intent(inout) :: manipulatedModeller

Modeller to be used in callbacks during integration

class(VariableContainer), intent(inout) :: outputVars

VariableContainer object to store the integration output

class(VariableContainer), intent(in) :: inputVars

VariableContainer object housing input data for the integration routine