Neko  0.8.1
A portable framework for high-order spectral element flow simulations
time_based_controller Module Reference

Contains the time_based_controller_t type. More...

Data Types

type  time_based_controller_t
 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...
 
interface  assignment(=)
 

Functions/Subroutines

subroutine time_based_controller_init (this, end_time, control_mode, control_value)
 Constructor. More...
 
logical function time_based_controller_check (this, t, tstep, force)
 Check if the execution should be performed. More...
 
subroutine time_based_controller_assignment (ctrl1, ctrl2)
 Assignment operator. Simply copies attribute values. More...
 
subroutine time_based_controller_register_execution (this)
 Increment nexectutions. More...
 
subroutine time_based_controller_set_counter (this, t)
 Set the counter based on a time (for restarts) More...
 

Detailed Description

Contains the time_based_controller_t type.

Function/Subroutine Documentation

◆ time_based_controller_assignment()

subroutine time_based_controller::time_based_controller_assignment ( type(time_based_controller_t), intent(inout)  ctrl1,
type(time_based_controller_t), intent(in)  ctrl2 
)
private

Assignment operator. Simply copies attribute values.

Parameters
ctrl1Left-hand side.
ctrl2Right-hand side.

Definition at line 165 of file time_based_controller.f90.

◆ time_based_controller_check()

logical function time_based_controller::time_based_controller_check ( class(time_based_controller_t), intent(inout)  this,
real(kind=rp), intent(in)  t,
integer, intent(in)  tstep,
logical, intent(in), optional  force 
)
private

Check if the execution should be performed.

Parameters
tTime value.
tstepCurrent timestep.
forceWhether to force returning true. Optional.
Note
In the logic, nsteps being zero corresponds to us not knowing the number of time-steps between executions and thus having to rely on nexecutions. This is done in anticipation of having a variable timestep.

Definition at line 133 of file time_based_controller.f90.

◆ time_based_controller_init()

subroutine time_based_controller::time_based_controller_init ( class(time_based_controller_t), intent(inout)  this,
real(kind=rp), intent(in)  end_time,
character(len=*), intent(in)  control_mode,
real(kind=rp), intent(in)  control_value 
)
private

Constructor.

Parameters
end_timeThe final simulation time.
control_modeThe way to interpret the control_value parameter.
control_valueThe value definining the execution frequency.

Definition at line 90 of file time_based_controller.f90.

◆ time_based_controller_register_execution()

subroutine time_based_controller::time_based_controller_register_execution ( class(time_based_controller_t), intent(inout)  this)
private

Increment nexectutions.

Definition at line 178 of file time_based_controller.f90.

◆ time_based_controller_set_counter()

subroutine time_based_controller::time_based_controller_set_counter ( class(time_based_controller_t), intent(inout)  this,
real(kind=rp), intent(in)  t 
)
private

Set the counter based on a time (for restarts)

Parameters
tsimulation time.

Definition at line 187 of file time_based_controller.f90.