Neko  0.9.0
A portable framework for high-order spectral element flow simulations
time_based_controller::time_based_controller_t Type Reference

A utility type for determening whether an action should be executed based on the current time value. Used to e.g. control whether we should write a file or execute a simcomp. Note that the nexecutions variable should be incremented externally by calling the register_execution procedure. This is to allow running the the check multiple times at the same time step. More...

Public Member Functions

procedure, pass(this) init => time_based_controller_init
 Constructor. More...
 
procedure, pass(this) check => time_based_controller_check
 Check if the execution should be performed. More...
 
procedure, pass(this) register_execution => time_based_controller_register_execution
 Increment nexectutions. More...
 
procedure, pass(this) set_counter => time_based_controller_set_counter
 Set the counter based on a time (for restarts) More...
 

Public Attributes

real(kind=rp) frequency = 0
 Frequency of execution. More...
 
real(kind=rp) time_interval = 0
 Time interval between executions. More...
 
integer nsteps = 0
 Number of timesteps in between executions. More...
 
real(kind=rp) end_time = 0
 Simulation end time. More...
 
integer nexecutions = 0
 Number of times already executed. More...
 
logical never = .false.
 Whether to never output. More...
 
character(len=:), allocatable control_mode
 Control mode defining the meaning of control_value. Can be simulationtime, tsteps, nsamples or never. More...
 
real(kind=rp) control_value
 Defines the frequency of writes. More...
 

Detailed Description

Definition at line 47 of file time_based_controller.f90.

Member Function/Subroutine Documentation

◆ check()

procedure, pass(this) time_based_controller::time_based_controller_t::check

Definition at line 70 of file time_based_controller.f90.

◆ init()

procedure, pass(this) time_based_controller::time_based_controller_t::init

Definition at line 68 of file time_based_controller.f90.

◆ register_execution()

procedure, pass(this) time_based_controller::time_based_controller_t::register_execution

Definition at line 72 of file time_based_controller.f90.

◆ set_counter()

procedure, pass(this) time_based_controller::time_based_controller_t::set_counter

Definition at line 75 of file time_based_controller.f90.

Member Data Documentation

◆ control_mode

character(len=:), allocatable time_based_controller::time_based_controller_t::control_mode

Definition at line 62 of file time_based_controller.f90.

◆ control_value

real(kind=rp) time_based_controller::time_based_controller_t::control_value

Definition at line 64 of file time_based_controller.f90.

◆ end_time

real(kind=rp) time_based_controller::time_based_controller_t::end_time = 0

Definition at line 55 of file time_based_controller.f90.

◆ frequency

real(kind=rp) time_based_controller::time_based_controller_t::frequency = 0

Definition at line 49 of file time_based_controller.f90.

◆ never

logical time_based_controller::time_based_controller_t::never = .false.

Definition at line 59 of file time_based_controller.f90.

◆ nexecutions

integer time_based_controller::time_based_controller_t::nexecutions = 0

Definition at line 57 of file time_based_controller.f90.

◆ nsteps

integer time_based_controller::time_based_controller_t::nsteps = 0

Definition at line 53 of file time_based_controller.f90.

◆ time_interval

real(kind=rp) time_based_controller::time_based_controller_t::time_interval = 0

Definition at line 51 of file time_based_controller.f90.


The documentation for this type was generated from the following file: