leapTimer Module

Time management utility for LEAP


Uses

  • module~~leaptimer~~UsesGraph module~leaptimer leapTimer module~leapkinds leapKinds module~leaptimer->module~leapkinds module~leapparser leapParser module~leaptimer->module~leapparser iso_fortran_env iso_fortran_env module~leapkinds->iso_fortran_env module~leapparser->module~leapkinds module~leapcli leapCli module~leapparser->module~leapcli module~leapcli->module~leapkinds

Used by

  • module~~leaptimer~~UsedByGraph module~leaptimer leapTimer module~cdifs cdifs module~cdifs->module~leaptimer module~leapsolver leapSolver module~cdifs->module~leapsolver module~particles_resolved particles_resolved module~cdifs->module~particles_resolved module~immersed_boundaries immersed_boundaries module~cdifs->module~immersed_boundaries module~grans grans module~grans->module~leaptimer module~grans->module~leapsolver module~grans->module~particles_resolved module~grans_cases grans_cases module~grans->module~grans_cases module~grans->module~immersed_boundaries module~immersed_boundaries_markers immersed_boundaries_markers module~immersed_boundaries_markers->module~leaptimer module~leapsolver->module~leaptimer module~particles_resolved->module~leaptimer module~particles_resolved->module~immersed_boundaries program~main main program~main->module~leaptimer program~main->module~cdifs program~main->module~grans program~main->module~leapsolver module~cdifs_advancesolution_smod cdifs_AdvanceSolution_smod module~cdifs_advancesolution_smod->module~cdifs module~cdifs_monitor_smod cdifs_Monitor_smod module~cdifs_monitor_smod->module~cdifs module~cdifs_preparesolver_smod cdifs_PrepareSolver_smod module~cdifs_preparesolver_smod->module~cdifs module~cdifs_writeoutputdata_smod cdifs_WriteOutputData_smod module~cdifs_writeoutputdata_smod->module~cdifs module~cdifs_writerestartdata_smod cdifs_WriteRestartData_smod module~cdifs_writerestartdata_smod->module~cdifs module~grans_advancesolution_smod grans_AdvanceSolution_smod module~grans_advancesolution_smod->module~grans module~grans_cases->module~particles_resolved module~grans_cases->module~immersed_boundaries module~grans_module_smod grans_module_smod module~grans_module_smod->module~grans module~grans_preparesolver_smod grans_PrepareSolver_smod module~grans_preparesolver_smod->module~grans module~grans_writeoutputdata_smod grans_WriteOutputData_smod module~grans_writeoutputdata_smod->module~grans module~grans_writerestartdata_smod grans_WriteRestartData_smod module~grans_writerestartdata_smod->module~grans module~immersed_boundaries->module~immersed_boundaries_markers module~immersed_boundaries_solids immersed_boundaries_solids module~immersed_boundaries->module~immersed_boundaries_solids module~immersed_boundaries_solids->module~immersed_boundaries_markers proc~add_markers add_markers proc~add_markers->module~particles_resolved proc~add_markers->module~immersed_boundaries proc~add_markers~2 add_markers proc~add_markers~2->module~particles_resolved proc~add_markers~2->module~immersed_boundaries proc~cdifs_rebound_respart cdifs_rebound_ResPart proc~cdifs_rebound_respart->module~particles_resolved proc~cdifs_settling_sphere_respart cdifs_settling_sphere_ResPart proc~cdifs_settling_sphere_respart->module~particles_resolved module~headon_collision_smod headon_collision_smod module~headon_collision_smod->module~grans_cases module~homogeneous_cooling_smod homogeneous_cooling_smod module~homogeneous_cooling_smod->module~grans_cases module~rotating_drum_smod rotating_drum_smod module~rotating_drum_smod->module~grans_cases proc~cdifs_cylinder_ib cdifs_cylinder_IB proc~cdifs_cylinder_ib->module~immersed_boundaries proc~cdifs_rebound_ib cdifs_rebound_IB proc~cdifs_rebound_ib->module~immersed_boundaries proc~cdifs_settling_sphere_ib cdifs_settling_sphere_IB proc~cdifs_settling_sphere_ib->module~immersed_boundaries

Derived Types

type, public ::  timer_obj

Time management utility

Components

Type Visibility Attributes Name Initial
real(kind=wp), public :: dt

Timestep

logical, public :: finish = .false.

Instructs simulation to end

real(kind=wp), public :: freq_output = huge(1.0_wp)

Frequency of visualization writes

real(kind=wp), public :: freq_write = huge(1.0_wp)

Frequency of restart writes

integer, public :: iter = 0

Current iteration

integer, public :: iter_max = huge(1)

Maximum iterations

type(parser_obj), public, pointer :: parser

Parser object

real(kind=wp), public :: time = 0.0_wp

Time at the n-th timestep

real(kind=wp), public :: time_max = huge(1.0_wp)

Maximum simulation time

real(kind=wp), public :: time_wall = huge(1.0_wp)

Wall time

Type-Bound Procedures

procedure, public :: Done => timer_obj_Done
procedure, public :: EndRun => timer_obj_EndRun
procedure, public :: Finalize => timer_obj_Final
procedure, public :: Initialize => timer_obj_Init
procedure, public :: StepForward => timer_obj_StepForward
procedure, public :: TimeToWriteOutputData => timer_obj_TimeToWriteOutputData
procedure, public :: TimeToWriteRestartData => timer_obj_TimeToWriteRestartData

Functions

private function timer_obj_Done(this) result(res)

Determines whether simulation is over

Arguments

Type IntentOptional Attributes Name
class(timer_obj), intent(inout) :: this

Timer

Return Value logical

private function timer_obj_TimeToWriteOutputData(this) result(res)

Determine whether it is time to write visualization files

Arguments

Type IntentOptional Attributes Name
class(timer_obj), intent(inout) :: this

Timer

Return Value logical

private function timer_obj_TimeToWriteRestartData(this) result(res)

Determine whether it is time to write restart files

Arguments

Type IntentOptional Attributes Name
class(timer_obj), intent(inout) :: this

Timer

Return Value logical


Subroutines

private subroutine timer_obj_EndRun(this)

Change run status to finished

Arguments

Type IntentOptional Attributes Name
class(timer_obj), intent(inout) :: this

Timer

private subroutine timer_obj_Final(this)

Finalize

Arguments

Type IntentOptional Attributes Name
class(timer_obj), intent(inout) :: this

Timer

private subroutine timer_obj_Init(this, parser)

Initialize the timer

Arguments

Type IntentOptional Attributes Name
class(timer_obj), intent(inout) :: this

Timer

type(parser_obj), intent(in), target :: parser

Input file parsing tool

private subroutine timer_obj_StepForward(this)

Move timer from n to n+1

Arguments

Type IntentOptional Attributes Name
class(timer_obj), intent(inout) :: this

Timer