simple_timestep_controller_procedures Submodule

Contains module procedures associated with the simple timestep controller class



Module Functions

module function evaluateTimestepSimple(this, inputVars, currentTimestep) result(timestep)

Calculate timestep as min(max) of variable product

Arguments

Type IntentOptional Attributes Name
class(SimpleTimestepController), intent(inout) :: this
class(VariableContainer), intent(in) :: inputVars

Variable container used to calculate timestep

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

Current timestep to be used if the controller rescales timesteps

Return Value real(kind=rk)


Module Subroutines

module subroutine initSimpleTimestepController(this, mpiCont, varCont, reqVars, reqVarPowers, multConst, useMaxVal, rescaleTimestep)

Simple timestep controller initialization routine

Arguments

Type IntentOptional Attributes Name
class(SimpleTimestepController), intent(inout) :: this
type(MPIController), intent(in) :: mpiCont

Reference MPI controller

type(VariableContainer), intent(in) :: varCont

Reference variable container

type(StringArray), intent(in), dimension(:) :: reqVars

Required variable list

real(kind=rk), intent(in), dimension(:) :: reqVarPowers

Powers corresponding to required variables

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

Normalization constant

logical, intent(in), optional :: useMaxVal

True if max value of product is used instead of min

logical, intent(in), optional :: rescaleTimestep

True if currentTimestep is rescaled using the calculated timestep value