|
Neko 1.99.2
A portable framework for high-order spectral element flow simulations
|
A utility type for determining 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 (this, start_time, end_time, control_mode, control_value) |
| Constructor. | |
| procedure, pass(this) | free (this) |
| Destructor. | |
| procedure, pass(this) | check (this, time, force) |
| Check if the execution should be performed. | |
| procedure, pass(this) | register_execution (this) |
Increment nexectutions. | |
| procedure, pass(this) | set_counter (this, time) |
| Set the counter based on a time (for restarts) | |
Public Attributes | |
| real(kind=rp) | frequency = 0.0_rp |
| Frequency of execution. | |
| real(kind=rp) | time_interval = 0.0_rp |
| Time interval between executions. | |
| integer | nsteps = 0 |
| Number of time steps in between executions. | |
| real(kind=rp) | start_time = 0.0_rp |
| Simulation start time. | |
| real(kind=rp) | end_time = 0.0_rp |
| Simulation end time. | |
| integer | nexecutions = 0 |
| Number of times already executed. | |
| logical | never = .false. |
| Whether to never output. | |
| character(len=:), allocatable | control_mode |
Control mode defining the meaning of control_value. Can be simulationtime, tsteps, nsamples or never. | |
| real(kind=rp) | control_value |
| Defines the frequency of writes. | |
Definition at line 48 of file time_based_controller.f90.
| procedure, pass(this) time_based_controller::time_based_controller_t::check | ( | class(time_based_controller_t), intent(inout) | this, |
| type(time_state_t), intent(in) | time, | ||
| logical, intent(in), optional | force | ||
| ) |
| t | Time value. |
| tstep | Current timestep. |
| dt | Timestep size. |
| force | Whether to force returning true. Optional. |
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. A fraction of the time step (10 percent) is used as a tolerance. Definition at line 75 of file time_based_controller.f90.
| procedure, pass(this) time_based_controller::time_based_controller_t::free | ( | class(time_based_controller_t), intent(inout) | this | ) |
Definition at line 73 of file time_based_controller.f90.
| procedure, pass(this) time_based_controller::time_based_controller_t::init | ( | class(time_based_controller_t), intent(inout) | this, |
| real(kind=rp), intent(in) | start_time, | ||
| real(kind=rp), intent(in) | end_time, | ||
| character(len=*), intent(in) | control_mode, | ||
| real(kind=rp), intent(in) | control_value | ||
| ) |
| end_time | The final simulation time. |
| control_mode | The way to interpret the control_value parameter. |
| control_value | The value defining the execution frequency. |
Definition at line 71 of file time_based_controller.f90.
| procedure, pass(this) time_based_controller::time_based_controller_t::register_execution | ( | class(time_based_controller_t), intent(inout) | this | ) |
Definition at line 77 of file time_based_controller.f90.
| procedure, pass(this) time_based_controller::time_based_controller_t::set_counter | ( | class(time_based_controller_t), intent(inout) | this, |
| type(time_state_t) | time | ||
| ) |
| time | Current time. |
Definition at line 80 of file time_based_controller.f90.
| character(len=:), allocatable time_based_controller::time_based_controller_t::control_mode |
Definition at line 65 of file time_based_controller.f90.
Definition at line 67 of file time_based_controller.f90.
Definition at line 58 of file time_based_controller.f90.
Definition at line 50 of file time_based_controller.f90.
| logical time_based_controller::time_based_controller_t::never = .false. |
Definition at line 62 of file time_based_controller.f90.
| integer time_based_controller::time_based_controller_t::nexecutions = 0 |
Definition at line 60 of file time_based_controller.f90.
| integer time_based_controller::time_based_controller_t::nsteps = 0 |
Definition at line 54 of file time_based_controller.f90.
Definition at line 56 of file time_based_controller.f90.
Definition at line 52 of file time_based_controller.f90.