Neko 1.99.9
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
output_controller::output_controller_t Type Reference

Centralized controller for a list of outputs. More...

Collaboration diagram for output_controller::output_controller_t:

Public Member Functions

procedure, pass(this) init (this, time_end, size, time_start, write_at_start)
 Constructor.
 
procedure, pass(this) free (this)
 Destructor.
 
procedure, pass(this) add (this, out, write_par, write_control, start_time, write_at_start)
 Add an output to the controller.
 
procedure, pass(this) execute (this, time, ifforce)
 Sample the fields and output.
 
procedure, pass(this) set_counter (this, time)
 Set output counter based on time (after restart)
 

Public Attributes

type(output_ptr_t), dimension(:), allocatable output_list
 List of outputs.
 
type(time_based_controller_t), dimension(:), allocatable controllers
 List of controllers for determining wether we should write.
 
integer n
 Number of outputs.
 
integer size
 Number of entries in the list.
 
real(kind=dp) time_start
 Start time of the simulation, the default anchor of the schedules.
 
logical write_at_start = .true.
 Whether outputs write the initial state of the simulation by default.
 
real(kind=dp) time_end
 Final time of the simulation.
 

Detailed Description

Holds a list of output_t and corresponding time_based_controller_ts. Uses the latter to determine, which outputs need to be sampled and written to disk at a given time step.

Definition at line 53 of file output_controller.f90.

Member Function/Subroutine Documentation

◆ add()

procedure, pass(this) output_controller::output_controller_t::add ( class(output_controller_t), intent(inout)  this,
class(output_t), intent(inout), target  out,
real(kind=dp), intent(in)  write_par,
character(len=*), intent(in)  write_control,
real(kind=dp), intent(in), optional  start_time,
logical, intent(in), optional  write_at_start 
)
Parameters
outThe output to add.
write_parThe output frequency value, in accordance with write_control.
write_controlDetermines the meaning of write_par. Accepts the usual list of control options.
start_timeWhen to start writing the output. Also the time the output schedule is anchored to. Optional, defaults to the start time of the simulation.
write_at_startWhether to write at start_time itself. Should be .false. for outputs for which a write at the very first time step is meaningless, such as checkpoints and running statistics. Optional, defaults to what the controller was constructed with.

Definition at line 74 of file output_controller.f90.

◆ execute()

procedure, pass(this) output_controller::output_controller_t::execute ( class(output_controller_t), intent(inout)  this,
type(time_state_t), intent(in)  time,
logical, intent(in), optional  ifforce 
)
Parameters
tThe time value.
tstepThe current time-stepper iteration.
ifforceWhether to force a write. Optional, defaults to 0.

Definition at line 76 of file output_controller.f90.

◆ free()

procedure, pass(this) output_controller::output_controller_t::free ( class(output_controller_t), intent(inout)  this)

Definition at line 72 of file output_controller.f90.

◆ init()

procedure, pass(this) output_controller::output_controller_t::init ( class(output_controller_t), intent(inout)  this,
real(kind=dp), intent(in)  time_end,
integer, intent(in), optional  size,
real(kind=dp), intent(in), optional  time_start,
logical, intent(in), optional  write_at_start 
)
Parameters
time_endThe end time of the simulation.
sizeThe number of controllers to allocate for. Optional, defaults to 1.
time_startThe start time of the simulation. Outputs that do not have a start time of their own do not write before it. Optional, defaults to 0.
write_at_startWhether outputs write the initial state of the simulation. The default for the outputs added afterwards, which each of them can override. Optional, defaults to .true..

Definition at line 70 of file output_controller.f90.

◆ set_counter()

procedure, pass(this) output_controller::output_controller_t::set_counter ( class(output_controller_t), intent(inout)  this,
type(time_state_t), intent(in)  time 
)
Parameters
timeCurrent time info.

Definition at line 78 of file output_controller.f90.

Member Data Documentation

◆ controllers

type(time_based_controller_t), dimension(:), allocatable output_controller::output_controller_t::controllers

Definition at line 57 of file output_controller.f90.

◆ n

integer output_controller::output_controller_t::n

Definition at line 59 of file output_controller.f90.

◆ output_list

type(output_ptr_t), dimension(:), allocatable output_controller::output_controller_t::output_list

Definition at line 55 of file output_controller.f90.

◆ size

integer output_controller::output_controller_t::size

Definition at line 61 of file output_controller.f90.

◆ time_end

real(kind=dp) output_controller::output_controller_t::time_end

Definition at line 67 of file output_controller.f90.

◆ time_start

real(kind=dp) output_controller::output_controller_t::time_start

Definition at line 63 of file output_controller.f90.

◆ write_at_start

logical output_controller::output_controller_t::write_at_start = .true.

Definition at line 65 of file output_controller.f90.


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