Level-based explicit time step bound: dtBase / 2**maxLevel, with dtBase stable on the base (level-0) mesh. Refinement halves the horizontal element size per level; the vertical spacing is unchanged, so this is conservative when the vertical CFL binds.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ExtrudedAMRController), | intent(in) | :: | this | |||
| real(kind=prec), | intent(in) | :: | dtBase |
function RecommendedTimeStep_ExtrudedAMRController(this,dtBase) result(dt)
!! Level-based explicit time step bound: dtBase / 2**maxLevel, with dtBase stable on the
!! base (level-0) mesh. Refinement halves the horizontal element size per level; the
!! vertical spacing is unchanged, so this is conservative when the vertical CFL binds.
implicit none
class(ExtrudedAMRController),intent(in) :: this
real(prec),intent(in) :: dtBase
real(prec) :: dt
dt = dtBase/real(2**this%maxLevel,prec)
endfunction RecommendedTimeStep_ExtrudedAMRController