Neko 1.99.3
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
boundary_operation::boundary_operation_t Type Referenceabstract

A simulation component for boundary reductions on labelled zones. More...

Inheritance diagram for boundary_operation::boundary_operation_t:
Collaboration diagram for boundary_operation::boundary_operation_t:

Public Member Functions

procedure, pass(thisinit (this, json, case)
 Construct the component from a case-file JSON object.
 
generic init_from_components (this, name, case, order, preprocess_controller, compute_controller, output_controller, zone_indices, field_name, operations, log, output_filename)
 Generic constructor from components.
 
generic init_from_components (this, name, case, order, preprocess_control, preprocess_value, compute_control, compute_value, output_control, output_value, zone_indices, field_name, operations, log, output_filename)
 Generic constructor from components.
 
procedure, pass(thisinit_from_controllers (this, name, case, order, preprocess_controller, compute_controller, output_controller, zone_indices, field_name, operations, log, output_filename)
 Construct from explicit time-based controllers.
 
procedure, pass(thisinit_from_controllers_properties (this, name, case, order, preprocess_control, preprocess_value, compute_control, compute_value, output_control, output_value, zone_indices, field_name, operations, log, output_filename)
 Construct from time-based controller properties.
 
procedure, pass(thisfree (this)
 Free the component.
 
procedure, pass(thiscompute_ (this, time)
 Compute the requested boundary operations.
 
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

type(field_t), pointer field => null()
 Field to sample.
 
type(coef_t), pointer coef => null()
 Surface coefficients.
 
type(neumann_tbc
 Boundary mask built from the chosen zones.
 
integer, dimension(:), allocatable zone_indices
 Labelled zones to include.
 
character(len=:), allocatable field_name
 Name of the input field.
 
character(len=16), dimension(:), allocatable operations
 Requested operations.
 
logical compute_integral = .false.
 Whether to compute the integral.
 
logical compute_average = .false.
 Whether to compute the average.
 
logical compute_min = .false.
 Whether to compute the minimum.
 
logical compute_max = .false.
 Whether to compute the maximum.
 
logical log = .true.
 Whether to write results to the log.
 
logical csv_output_enabled = .false.
 Whether CSV output is enabled.
 
type(file_tcsv_output
 Optional CSV output file.
 
type(vector_tcsv_row
 Reusable row buffer for CSV output.
 
type(vector_tareas
 Precomputed boundary quadrature weights.
 
type(vector_tsurface_values
 Reusable gathered boundary values.
 
real(kind=rp) integral = 0.0_rp
 Most recently computed integral.
 
real(kind=rp) average = 0.0_rp
 Most recently computed average.
 
real(kind=rp) minimum = huge(0.0_rp)
 Most recently computed minimum.
 
real(kind=rp) maximum = -huge(0.0_rp)
 Most recently computed maximum.
 
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.
 
character(:), allocatable name
 Unique name of the simcomp.
 

Private Member Functions

procedure, pass(this), private init_common (this, name, coef, zone_indices, field_name, operations, log, output_filename)
 Common constructor used by all public constructors.
 

Detailed Description

Definition at line 58 of file boundary_operation.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 91 of file simulation_component.f90.

◆ compute_() [1/2]

procedure, pass(this) boundary_operation::boundary_operation_t::compute_ ( class(boundary_operation_t), intent(inout this,
type(time_state_t), intent(in time 
)
Parameters
timeCurrent simulation time state.

Definition at line 117 of file boundary_operation.f90.

◆ compute_() [2/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 99 of file simulation_component.f90.

◆ free() [1/2]

procedure, pass(this) boundary_operation::boundary_operation_t::free ( class(boundary_operation_t), intent(inout this)

Definition at line 115 of file boundary_operation.f90.

◆ free() [2/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 95 of file simulation_component.f90.

◆ free_base()

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

Definition at line 81 of file simulation_component.f90.

◆ init() [1/2]

procedure, pass(this) boundary_operation::boundary_operation_t::init ( class(boundary_operation_t), intent(inout), target  this,
type(json_file), intent(inout json,
class(case_t), intent(inout), target  case 
)
Parameters
jsonJSON object describing the simcomp.
caseSimulation case.

Definition at line 101 of file boundary_operation.f90.

◆ init() [2/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 93 of file simulation_component.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 65 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 67 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 67 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 73 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 78 of file simulation_component.f90.

◆ init_common()

procedure, pass(this), private boundary_operation::boundary_operation_t::init_common ( class(boundary_operation_t), intent(inout this,
character(len=*), intent(in name,
type(coef_t), intent(inout), target  coef,
integer, dimension(:), intent(in zone_indices,
character(len=*), intent(in field_name,
character(len=*), dimension(:), intent(in operations,
logical, intent(in log,
character(len=*), intent(in), optional  output_filename 
)
private
Parameters
nameUnique simcomp name.
coefSEM coefficients.
zone_indicesLabelled zones to include.
field_nameName of the registered field to process.
operationsRequested operations in output order.
logWhether to emit tabular log output.
output_filenameOptional CSV output filename.

Definition at line 112 of file boundary_operation.f90.

◆ init_from_components() [1/2]

generic boundary_operation::boundary_operation_t::init_from_components ( class(boundary_operation_t), intent(inout this,
character(len=*), intent(in name,
class(case_t), intent(inout), target  case,
integer, intent(in 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,
integer, dimension(:), intent(in zone_indices,
character(len=*), intent(in field_name,
character(len=*), dimension(:), intent(in operations,
logical, intent(in), optional  log,
character(len=*), intent(in), optional  output_filename 
)
Parameters
nameUnique simcomp name.
caseSimulation case owning the simcomp.
orderExecution priority.
preprocess_controlControl mode for preprocessing.
preprocess_valueControl value for preprocessing.
compute_controlControl mode for computation.
compute_valueControl value for computation.
output_controlControl mode for output.
output_valueControl value for output.
zone_indicesLabelled zones to include.
field_nameName of the registered field to process.
operationsRequested operations in output order.
logOptional flag controlling log output.
output_filenameOptional CSV output filename.

Definition at line 103 of file boundary_operation.f90.

◆ init_from_components() [2/2]

generic boundary_operation::boundary_operation_t::init_from_components ( class(boundary_operation_t), intent(inout this,
character(len=*), intent(in name,
class(case_t), intent(inout), target  case,
integer, intent(in 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,
integer, dimension(:), intent(in zone_indices,
character(len=*), intent(in field_name,
character(len=*), dimension(:), intent(in operations,
logical, intent(in), optional  log,
character(len=*), intent(in), optional  output_filename 
)
Parameters
nameUnique simcomp name.
caseSimulation case owning the simcomp.
orderExecution priority.
preprocess_controllerController for preprocessing.
compute_controllerController for computation.
output_controllerController for output.
zone_indicesLabelled zones to include.
field_nameName of the registered field to process.
operationsRequested operations in output order.
logOptional flag controlling log output.
output_filenameOptional CSV output filename.

Definition at line 103 of file boundary_operation.f90.

◆ init_from_controllers()

procedure, pass(this) boundary_operation::boundary_operation_t::init_from_controllers ( class(boundary_operation_t), intent(inout this,
character(len=*), intent(in name,
class(case_t), intent(inout), target  case,
integer, intent(in 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,
integer, dimension(:), intent(in zone_indices,
character(len=*), intent(in field_name,
character(len=*), dimension(:), intent(in operations,
logical, intent(in), optional  log,
character(len=*), intent(in), optional  output_filename 
)
Parameters
nameUnique simcomp name.
caseSimulation case owning the simcomp.
orderExecution priority.
preprocess_controllerController for preprocessing.
compute_controllerController for computation.
output_controllerController for output.
zone_indicesLabelled zones to include.
field_nameName of the registered field to process.
operationsRequested operations in output order.
logOptional flag controlling log output.
output_filenameOptional CSV output filename.

Definition at line 106 of file boundary_operation.f90.

◆ init_from_controllers_properties()

procedure, pass(this) boundary_operation::boundary_operation_t::init_from_controllers_properties ( class(boundary_operation_t), intent(inout this,
character(len=*), intent(in name,
class(case_t), intent(inout), target  case,
integer, intent(in 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,
integer, dimension(:), intent(in zone_indices,
character(len=*), intent(in field_name,
character(len=*), dimension(:), intent(in operations,
logical, intent(in), optional  log,
character(len=*), intent(in), optional  output_filename 
)
Parameters
nameUnique simcomp name.
caseSimulation case owning the simcomp.
orderExecution priority.
preprocess_controlControl mode for preprocessing.
preprocess_valueControl value for preprocessing.
compute_controlControl mode for computation.
compute_valueControl value for computation.
output_controlControl mode for output.
output_valueControl value for output.
zone_indicesLabelled zones to include.
field_nameName of the registered field to process.
operationsRequested operations in output order.
logOptional flag controlling log output.
output_filenameOptional CSV output filename.

Definition at line 109 of file boundary_operation.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 103 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 87 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 97 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 84 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 101 of file simulation_component.f90.

Member Data Documentation

◆ areas

type(vector_t) boundary_operation::boundary_operation_t::areas

Definition at line 88 of file boundary_operation.f90.

◆ average

real(kind=rp) boundary_operation::boundary_operation_t::average = 0.0_rp

Definition at line 94 of file boundary_operation.f90.

◆ bc

type(neumann_t) boundary_operation::boundary_operation_t::bc

Definition at line 64 of file boundary_operation.f90.

◆ case

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

Definition at line 52 of file simulation_component.f90.

◆ coef

type(coef_t), pointer boundary_operation::boundary_operation_t::coef => null()

Definition at line 62 of file boundary_operation.f90.

◆ compute_average

logical boundary_operation::boundary_operation_t::compute_average = .false.

Definition at line 74 of file boundary_operation.f90.

◆ compute_controller

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

Definition at line 56 of file simulation_component.f90.

◆ compute_integral

logical boundary_operation::boundary_operation_t::compute_integral = .false.

Definition at line 72 of file boundary_operation.f90.

◆ compute_max

logical boundary_operation::boundary_operation_t::compute_max = .false.

Definition at line 78 of file boundary_operation.f90.

◆ compute_min

logical boundary_operation::boundary_operation_t::compute_min = .false.

Definition at line 76 of file boundary_operation.f90.

◆ csv_output

type(file_t) boundary_operation::boundary_operation_t::csv_output

Definition at line 84 of file boundary_operation.f90.

◆ csv_output_enabled

logical boundary_operation::boundary_operation_t::csv_output_enabled = .false.

Definition at line 82 of file boundary_operation.f90.

◆ csv_row

type(vector_t) boundary_operation::boundary_operation_t::csv_row

Definition at line 86 of file boundary_operation.f90.

◆ field

type(field_t), pointer boundary_operation::boundary_operation_t::field => null()

Definition at line 60 of file boundary_operation.f90.

◆ field_name

character(len=:), allocatable boundary_operation::boundary_operation_t::field_name

Definition at line 68 of file boundary_operation.f90.

◆ integral

real(kind=rp) boundary_operation::boundary_operation_t::integral = 0.0_rp

Definition at line 92 of file boundary_operation.f90.

◆ log

logical boundary_operation::boundary_operation_t::log = .true.

Definition at line 80 of file boundary_operation.f90.

◆ maximum

real(kind=rp) boundary_operation::boundary_operation_t::maximum = -huge(0.0_rp)

Definition at line 98 of file boundary_operation.f90.

◆ minimum

real(kind=rp) boundary_operation::boundary_operation_t::minimum = huge(0.0_rp)

Definition at line 96 of file boundary_operation.f90.

◆ name

character(:), allocatable simulation_component::simulation_component_t::name
inherited

Definition at line 62 of file simulation_component.f90.

◆ operations

character(len=16), dimension(:), allocatable boundary_operation::boundary_operation_t::operations

Definition at line 70 of file boundary_operation.f90.

◆ order

integer simulation_component::simulation_component_t::order
inherited

Definition at line 60 of file simulation_component.f90.

◆ output_controller

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

Definition at line 58 of file simulation_component.f90.

◆ preprocess_controller

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

Definition at line 54 of file simulation_component.f90.

◆ surface_values

type(vector_t) boundary_operation::boundary_operation_t::surface_values

Definition at line 90 of file boundary_operation.f90.

◆ zone_indices

integer, dimension(:), allocatable boundary_operation::boundary_operation_t::zone_indices

Definition at line 66 of file boundary_operation.f90.


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