composite_integrator_procedures Submodule

Contains procedures associated with the composite integrator class


Uses


Module Functions

pure module function getCurrentTime(this) result(time)

Getter for currentTime

Arguments

Type IntentOptional Attributes Name
class(CompositeIntegrator), intent(in) :: this

Return Value real(kind=rk)


Module Subroutines

pure module subroutine initCompositeIntegrator(this, initialTime, initialTimestep, numIntegrators, dtController)

Composite integraotr initialization routine

Arguments

Type IntentOptional Attributes Name
class(CompositeIntegrator), intent(inout) :: this
real(kind=rk), intent(in) :: initialTime

Time value before first step

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

Default timestep

integer(kind=ik), intent(in) :: numIntegrators

Number of integrators expected

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

Optional timestep controller

pure module subroutine addIntegrator(this, integ)

Add Integrator object to composite integrator

Arguments

Type IntentOptional Attributes Name
class(CompositeIntegrator), intent(inout) :: this
class(Integrator), intent(in) :: integ

pure module subroutine addIntegrationStage(this, integStage)

Add integration stage to composite integrator

Arguments

Type IntentOptional Attributes Name
class(CompositeIntegrator), intent(inout) :: this
type(IntegratorCallStep), intent(in) :: integStage

pure module subroutine setTimestepController(this, controller)

Setter for dtController

Arguments

Type IntentOptional Attributes Name
class(CompositeIntegrator), intent(inout) :: this
class(TimestepController), intent(in) :: controller

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

Call all integrators based on the integration stages and global timestep. The global timestep is updated at the start if there is an allocated timestep controller.

Arguments

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

Modeller object used in callback

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

Container for integration output

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

Integration input variables