Neko 1.99.1
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
user_stats::user_stats_t Type Referenceabstract

A simulation component that computes the averages of fields in the registry. More...

Inheritance diagram for user_stats::user_stats_t:
Collaboration diagram for user_stats::user_stats_t:

Public Member Functions

procedure, pass(thisinit (this, json, case)
 Constructor from json, wrapping the actual constructor.
 
generic init_from_components (this, case, order, preprocess_controller, compute_controller, output_controller, start_time, coef, avg_dir, filename, precision)
 Generic for constructing from components.
 
generic init_from_components (this, case, order, preprocess_control, preprocess_value, compute_control, compute_value, output_control, output_value, start_time, coef, avg_dir, filename, precision)
 Generic for constructing from components.
 
procedure, pass(thisinit_from_controllers (this, case, order, preprocess_controller, compute_controller, output_controller, start_time, coef, avg_dir, filename, precision)
 Constructor from components, passing time_based_controllers.
 
procedure, pass(thisinit_from_controllers_properties (this, case, order, preprocess_control, preprocess_value, compute_control, compute_value, output_control, output_value, start_time, coef, avg_dir, filename, precision)
 Constructor from components, passing the properties of time_based_controllers.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thiscompute_ (this, time)
 Compute the means.
 
procedure, pass(thisrestart_ (this, time)
 
procedure, pass(thisinit_base (this, json, case)
 Constructor for the simulation_component_t (base) class.
 
generic init_base_from_components (this, case, order, preprocess_control, preprocess_value, compute_control, compute_value, output_control, output_value)
 Constructor for the simulation_component_t (base) class from components.
 
generic init_base_from_components (this, case, order, preprocess_controller, compute_controller, output_controller)
 Constructor for the simulation_component_t (base) class from components.
 
procedure, pass(thisinit_base_from_controllers (this, case, order, preprocess_controller, compute_controller, output_controller)
 Constructor for the simulation_component_t (base) class from time_based_controllers, essentially directly from all components (we reserve the _from_components name for the generic binding).
 
procedure, pass(thisinit_base_from_controllers_properties (this, case, order, preprocess_control, preprocess_value, compute_control, compute_value, output_control, output_value)
 Constructor for the simulation_component_t (base) class from properties of time_based_controllers, so the latter are constructed instead of assigned.
 
procedure, pass(thisfree_base (this)
 Destructor for the simulation_component_t (base) class.
 
procedure, pass(thisrestart (this, time)
 Wrapper for calling set_counter for the time based controllers. Serves as the public interface.
 
procedure, pass(thispreprocess (this, time)
 Wrapper for calling preprocess_ based on the preprocess_controller. Serves as the public interface.
 
procedure, pass(thiscompute (this, time)
 Wrapper for calling compute_ based on the compute_controller. Serves as the public interface.
 
procedure(simulation_component_init), deferred, pass init (this, json, case)
 The common constructor using a JSON dictionary.
 
procedure(simulation_component_free), deferred, pass free (this)
 Destructor.
 
procedure, pass(thispreprocess_ (this, time)
 The preprocessing function to be executed during the run.
 
procedure, pass(thiscompute_ (this, time)
 The main function to be executed during the run.
 
procedure, pass(thisrestart_ (this, time)
 The restart function to be called upon restarting simulation.
 
procedure, pass(thisparse_json (this, json, case_params, preprocess_control, preprocess_value, compute_control, compute_value, output_control, output_value)
 JSON parameter parser for the time-based controllers.
 

Public Attributes

real(kind=rp) start_time
 When to start averaging.
 
real(kind=rp) time
 Current time. Uses to compute time delta since last run of compute.
 
type(mean_field_t), dimension(:), allocatable mean_fields
 The averaged fields.
 
integer n_avg_fields = 0
 Number of fields to average.
 
character(len=20), dimension(:), allocatable field_names
 The names of the fields to average.
 
type(case_t), pointer case
 Pointer to the simulation case.
 
type(time_based_controller_tpreprocess_controller
 Controller for when to run preprocess.
 
type(time_based_controller_tcompute_controller
 Controller for when to run compute.
 
type(time_based_controller_toutput_controller
 Controller for when to do output.
 
integer order
 The execution order, lowest excutes first.
 

Private Member Functions

procedure, pass(this), private init_common (this, start_time, coef, avg_dir, filename, precision)
 Common part of both constructors.
 

Private Attributes

type(mean_field_output_t), private output
 Output writer.
 

Detailed Description

Definition at line 53 of file user_stats.f90.

Member Function/Subroutine Documentation

◆ compute()

procedure, pass(this) simulation_component::simulation_component_t::compute ( class(simulation_component_t), intent(inout this,
type(time_state_t), intent(in time 
)
inherited
Parameters
timeThe current time.

Definition at line 88 of file simulation_component.f90.

◆ compute_() [1/2]

procedure, pass(this) simulation_component::simulation_component_t::compute_ ( class(simulation_component_t), intent(inout this,
type(time_state_t), intent(in time 
)
inherited
Parameters
timeThe current time.

Definition at line 96 of file simulation_component.f90.

◆ compute_() [2/2]

procedure, pass(this) user_stats::user_stats_t::compute_ ( class(user_stats_t), intent(inout this,
type(time_state_t), intent(in time 
)
Parameters
timeThe current time state.

Definition at line 86 of file user_stats.f90.

◆ free() [1/2]

procedure(simulation_component_free), deferred, pass simulation_component::simulation_component_t::free ( class(simulation_component_t), intent(inout this)
pure virtualinherited

Definition at line 92 of file simulation_component.f90.

◆ free() [2/2]

procedure, pass(this) user_stats::user_stats_t::free ( class(user_stats_t), intent(inout this)

Definition at line 84 of file user_stats.f90.

◆ free_base()

procedure, pass(this) simulation_component::simulation_component_t::free_base ( class(simulation_component_t), intent(inout this)
inherited

Definition at line 78 of file simulation_component.f90.

◆ init() [1/2]

procedure(simulation_component_init), deferred, pass simulation_component::simulation_component_t::init ( class(simulation_component_t), intent(inout), target  this,
type(json_file), intent(inout json,
class(case_t), intent(inout), target  case 
)
pure virtualinherited

Definition at line 90 of file simulation_component.f90.

◆ init() [2/2]

procedure, pass(this) user_stats::user_stats_t::init ( class(user_stats_t), intent(inout), target  this,
type(json_file), intent(inout json,
class(case_t), intent(inout), target  case 
)
Parameters
jsonThe json paramter dictionary.
caseThe neko case object.

Definition at line 70 of file user_stats.f90.

◆ init_base()

procedure, pass(this) simulation_component::simulation_component_t::init_base ( class(simulation_component_t), intent(inout this,
type(json_file), intent(inout json,
class(case_t), intent(inout), target  case 
)
inherited

Definition at line 62 of file simulation_component.f90.

◆ init_base_from_components() [1/2]

generic simulation_component::simulation_component_t::init_base_from_components ( class(simulation_component_t), intent(inout this,
class(case_t), intent(inout), target  case,
integer  order,
character(len=*), intent(in preprocess_control,
real(kind=rp), intent(in preprocess_value,
character(len=*), intent(in compute_control,
real(kind=rp), intent(in compute_value,
character(len=*), intent(in output_control,
real(kind=rp), intent(in output_value 
)
inherited
Parameters
caseThe simulation case object.
orderThe execution oder priority of the simcomp.
preprocess_controllerControl mode for preprocessing.
preprocess_valueValue parameter for preprocessing.
compute_controllerControl mode for computing.
compute_valueValue parameter for computing.
output_controllerControl mode for output.
output_valueValue parameter for output.

Definition at line 64 of file simulation_component.f90.

◆ init_base_from_components() [2/2]

generic simulation_component::simulation_component_t::init_base_from_components ( class(simulation_component_t), intent(inout this,
class(case_t), intent(inout), target  case,
integer  order,
type(time_based_controller_t), intent(in preprocess_controller,
type(time_based_controller_t), intent(in compute_controller,
type(time_based_controller_t), intent(in output_controller 
)
inherited
Parameters
caseThe simulation case object.
orderThe execution oder priority of the simcomp.
preprocess_controllerThe controller for running preprocessing.
compute_controllerThe controller for running compute.
output_controllerThe controller for producing output.

Definition at line 64 of file simulation_component.f90.

◆ init_base_from_controllers()

procedure, pass(this) simulation_component::simulation_component_t::init_base_from_controllers ( class(simulation_component_t), intent(inout this,
class(case_t), intent(inout), target  case,
integer  order,
type(time_based_controller_t), intent(in preprocess_controller,
type(time_based_controller_t), intent(in compute_controller,
type(time_based_controller_t), intent(in output_controller 
)
inherited
Parameters
caseThe simulation case object.
orderThe execution oder priority of the simcomp.
preprocess_controllerThe controller for running preprocessing.
compute_controllerThe controller for running compute.
output_controllerThe controller for producing output.

Definition at line 70 of file simulation_component.f90.

◆ init_base_from_controllers_properties()

procedure, pass(this) simulation_component::simulation_component_t::init_base_from_controllers_properties ( class(simulation_component_t), intent(inout this,
class(case_t), intent(inout), target  case,
integer  order,
character(len=*), intent(in preprocess_control,
real(kind=rp), intent(in preprocess_value,
character(len=*), intent(in compute_control,
real(kind=rp), intent(in compute_value,
character(len=*), intent(in output_control,
real(kind=rp), intent(in output_value 
)
inherited
Parameters
caseThe simulation case object.
orderThe execution oder priority of the simcomp.
preprocess_controllerControl mode for preprocessing.
preprocess_valueValue parameter for preprocessing.
compute_controllerControl mode for computing.
compute_valueValue parameter for computing.
output_controllerControl mode for output.
output_valueValue parameter for output.

Definition at line 75 of file simulation_component.f90.

◆ init_common()

procedure, pass(this), private user_stats::user_stats_t::init_common ( class(user_stats_t), intent(inout this,
real(kind=rp), intent(in start_time,
type(coef_t), intent(inout coef,
character(len=*), intent(in avg_dir,
character(len=*), intent(in filename,
integer, intent(in), optional  precision 
)
private
Parameters
start_timeThe start time for gathering samples for the average.
coefThe SEM coefficients.
avg_dirThe averaging direction.

Definition at line 82 of file user_stats.f90.

◆ init_from_components() [1/2]

generic user_stats::user_stats_t::init_from_components ( class(user_stats_t), intent(inout this,
class(case_t), intent(inout), target  case,
integer  order,
character(len=*), intent(in preprocess_control,
real(kind=rp), intent(in preprocess_value,
character(len=*), intent(in compute_control,
real(kind=rp), intent(in compute_value,
character(len=*), intent(in output_control,
real(kind=rp), intent(in output_value,
real(kind=rp), intent(in start_time,
type(coef_t), intent(inout coef,
character(len=*), intent(in avg_dir,
character(len=*), intent(in), optional  filename,
integer, intent(in), optional  precision 
)
Parameters
caseThe simulation case object.
orderThe execution oder priority of the simcomp.
preprocess_controllerControl mode for preprocessing.
preprocess_valueValue parameter for preprocessing.
compute_controllerControl mode for computing.
compute_valueValue parameter for computing.
output_controllerControl mode for output.
output_valueValue parameter for output.
start_timeThe start time for gathering samples for the average.
coefThe SEM coefficients.
avg_dirThe averaging direction.
filenameThe name of the file save the fields to. Optional, if not provided, fields are added to the main output file.
precisionThe real precision of the output data. Optional, defaults to single precision.

Definition at line 72 of file user_stats.f90.

◆ init_from_components() [2/2]

generic user_stats::user_stats_t::init_from_components ( class(user_stats_t), intent(inout this,
class(case_t), intent(inout), target  case,
integer  order,
type(time_based_controller_t), intent(in preprocess_controller,
type(time_based_controller_t), intent(in compute_controller,
type(time_based_controller_t), intent(in output_controller,
real(kind=rp), intent(in start_time,
type(coef_t), intent(inout coef,
character(len=*), intent(in avg_dir,
character(len=*), intent(in), optional  filename,
integer, intent(in), optional  precision 
)
Parameters
caseThe simulation case object.
orderThe execution oder priority of the simcomp.
preprocess_controllerThe controller for running preprocessing.
compute_controllerThe controller for running compute.
output_controllerThe controller for producing output.
start_timeThe start time for gathering samples for the average.
coefThe SEM coefficients.
avg_dirThe averaging direction.
filenameThe name of the file save the fields to. Optional, if not
precisionThe real precision of the output data. Optional, defaults to single precision.

Definition at line 72 of file user_stats.f90.

◆ init_from_controllers()

procedure, pass(this) user_stats::user_stats_t::init_from_controllers ( class(user_stats_t), intent(inout this,
class(case_t), intent(inout), target  case,
integer  order,
type(time_based_controller_t), intent(in preprocess_controller,
type(time_based_controller_t), intent(in compute_controller,
type(time_based_controller_t), intent(in output_controller,
real(kind=rp), intent(in start_time,
type(coef_t), intent(inout coef,
character(len=*), intent(in avg_dir,
character(len=*), intent(in), optional  filename,
integer, intent(in), optional  precision 
)
Parameters
caseThe simulation case object.
orderThe execution oder priority of the simcomp.
preprocess_controllerThe controller for running preprocessing.
compute_controllerThe controller for running compute.
output_controllerThe controller for producing output.
start_timeThe start time for gathering samples for the average.
coefThe SEM coefficients.
avg_dirThe averaging direction.
filenameThe name of the file save the fields to. Optional, if not
precisionThe real precision of the output data. Optional, defaults to single precision.

Definition at line 75 of file user_stats.f90.

◆ init_from_controllers_properties()

procedure, pass(this) user_stats::user_stats_t::init_from_controllers_properties ( class(user_stats_t), intent(inout this,
class(case_t), intent(inout), target  case,
integer  order,
character(len=*), intent(in preprocess_control,
real(kind=rp), intent(in preprocess_value,
character(len=*), intent(in compute_control,
real(kind=rp), intent(in compute_value,
character(len=*), intent(in output_control,
real(kind=rp), intent(in output_value,
real(kind=rp), intent(in start_time,
type(coef_t), intent(inout coef,
character(len=*), intent(in avg_dir,
character(len=*), intent(in), optional  filename,
integer, intent(in), optional  precision 
)
Parameters
caseThe simulation case object.
orderThe execution oder priority of the simcomp.
preprocess_controllerControl mode for preprocessing.
preprocess_valueValue parameter for preprocessing.
compute_controllerControl mode for computing.
compute_valueValue parameter for computing.
output_controllerControl mode for output.
output_valueValue parameter for output.
start_timeThe start time for gathering samples for the average.
coefThe SEM coefficients.
avg_dirThe averaging direction.
filenameThe name of the file save the fields to. Optional, if not provided, fields are added to the main output file.
precisionThe real precision of the output data. Optional, defaults to single precision.

Definition at line 79 of file user_stats.f90.

◆ parse_json()

procedure, pass(this) simulation_component::simulation_component_t::parse_json ( class(simulation_component_t), intent(inout this,
type(json_file), intent(inout json,
type(json_file), intent(inout case_params,
character(len=:), intent(inout), allocatable  preprocess_control,
real(kind=rp), intent(out preprocess_value,
character(len=:), intent(inout), allocatable  compute_control,
real(kind=rp), intent(out compute_value,
character(len=:), intent(inout), allocatable  output_control,
real(kind=rp), intent(out output_value 
)
inherited
Parameters
jsonThe JSON dictionary of the simcomp.
case_paramsThe entire case configuration JSON.
preprocess_valueControl mode for preprocessing.
preprocess_controllerValue parameter for preprocessing.
compute_controllerControl mode for computing.
compute_controllerValue parameter for computing.
output_controllerControl mode for output.
output_controllerValue parameter for output.

Definition at line 100 of file simulation_component.f90.

◆ preprocess()

procedure, pass(this) simulation_component::simulation_component_t::preprocess ( class(simulation_component_t), intent(inout this,
type(time_state_t), intent(in time 
)
inherited
Parameters
timeThe current time.

Definition at line 84 of file simulation_component.f90.

◆ preprocess_()

procedure, pass(this) simulation_component::simulation_component_t::preprocess_ ( class(simulation_component_t), intent(inout this,
type(time_state_t), intent(in time 
)
inherited
Parameters
timeThe current time.

Definition at line 94 of file simulation_component.f90.

◆ restart()

procedure, pass(this) simulation_component::simulation_component_t::restart ( class(simulation_component_t), intent(inout this,
type(time_state_t), intent(in time 
)
inherited
Parameters
timeThe current time.

Definition at line 81 of file simulation_component.f90.

◆ restart_() [1/2]

procedure, pass(this) simulation_component::simulation_component_t::restart_ ( class(simulation_component_t), intent(inout this,
type(time_state_t), intent(in time 
)
inherited
Parameters
timeThe current time.

Definition at line 98 of file simulation_component.f90.

◆ restart_() [2/2]

procedure, pass(this) user_stats::user_stats_t::restart_ ( class(user_stats_t), intent(inout this,
type(time_state_t), intent(in time 
)

Definition at line 87 of file user_stats.f90.

Member Data Documentation

◆ case

type(case_t), pointer simulation_component::simulation_component_t::case
inherited

Definition at line 51 of file simulation_component.f90.

◆ compute_controller

type(time_based_controller_t) simulation_component::simulation_component_t::compute_controller
inherited

Definition at line 55 of file simulation_component.f90.

◆ field_names

character(len=20), dimension(:), allocatable user_stats::user_stats_t::field_names

Definition at line 64 of file user_stats.f90.

◆ mean_fields

type(mean_field_t), dimension(:), allocatable user_stats::user_stats_t::mean_fields

Definition at line 60 of file user_stats.f90.

◆ n_avg_fields

integer user_stats::user_stats_t::n_avg_fields = 0

Definition at line 62 of file user_stats.f90.

◆ order

integer simulation_component::simulation_component_t::order
inherited

Definition at line 59 of file simulation_component.f90.

◆ output

type(mean_field_output_t), private user_stats::user_stats_t::output
private

Definition at line 66 of file user_stats.f90.

◆ output_controller

type(time_based_controller_t) simulation_component::simulation_component_t::output_controller
inherited

Definition at line 57 of file simulation_component.f90.

◆ preprocess_controller

type(time_based_controller_t) simulation_component::simulation_component_t::preprocess_controller
inherited

Definition at line 53 of file simulation_component.f90.

◆ start_time

real(kind=rp) user_stats::user_stats_t::start_time

Definition at line 56 of file user_stats.f90.

◆ time

real(kind=rp) user_stats::user_stats_t::time

Definition at line 58 of file user_stats.f90.


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