|
Neko 1.99.3
A portable framework for high-order spectral element flow simulations
|
A simulation component for boundary reductions on labelled zones. More...


Public Member Functions | |
| procedure, pass(this) | init (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(this) | init_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(this) | init_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(this) | free (this) |
| Free the component. | |
| procedure, pass(this) | compute_ (this, time) |
| Compute the requested boundary operations. | |
| procedure, pass(this) | init_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(this) | init_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(this) | init_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(this) | free_base (this) |
| Destructor for the simulation_component_t (base) class. | |
| procedure, pass(this) | restart (this, time) |
Wrapper for calling set_counter for the time based controllers. Serves as the public interface. | |
| procedure, pass(this) | preprocess (this, time) |
Wrapper for calling preprocess_ based on the preprocess_controller. Serves as the public interface. | |
| procedure, pass(this) | compute (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(this) | preprocess_ (this, time) |
| The preprocessing function to be executed during the run. | |
| procedure, pass(this) | compute_ (this, time) |
| The main function to be executed during the run. | |
| procedure, pass(this) | restart_ (this, time) |
| The restart function to be called upon restarting simulation. | |
| procedure, pass(this) | parse_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_t) | bc |
| 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_t) | csv_output |
| Optional CSV output file. | |
| type(vector_t) | csv_row |
| Reusable row buffer for CSV output. | |
| type(vector_t) | areas |
| Precomputed boundary quadrature weights. | |
| type(vector_t) | surface_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_t) | preprocess_controller |
Controller for when to run preprocess. | |
| type(time_based_controller_t) | compute_controller |
Controller for when to run compute. | |
| type(time_based_controller_t) | output_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. | |
Definition at line 58 of file boundary_operation.f90.
|
inherited |
| time | The current time. |
Definition at line 91 of file simulation_component.f90.
| procedure, pass(this) boundary_operation::boundary_operation_t::compute_ | ( | class(boundary_operation_t), intent(inout) | this, |
| type(time_state_t), intent(in) | time | ||
| ) |
| time | Current simulation time state. |
Definition at line 117 of file boundary_operation.f90.
|
inherited |
| time | The current time. |
Definition at line 99 of file simulation_component.f90.
| 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.
|
pure virtualinherited |
Definition at line 95 of file simulation_component.f90.
|
inherited |
Definition at line 81 of file simulation_component.f90.
| 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 | ||
| ) |
| json | JSON object describing the simcomp. |
| case | Simulation case. |
Definition at line 101 of file boundary_operation.f90.
|
pure virtualinherited |
Definition at line 93 of file simulation_component.f90.
|
inherited |
Definition at line 65 of file simulation_component.f90.
|
inherited |
| case | The simulation case object. |
| order | The execution oder priority of the simcomp. |
| preprocess_controller | Control mode for preprocessing. |
| preprocess_value | Value parameter for preprocessing. |
| compute_controller | Control mode for computing. |
| compute_value | Value parameter for computing. |
| output_controller | Control mode for output. |
| output_value | Value parameter for output. |
Definition at line 67 of file simulation_component.f90.
|
inherited |
| case | The simulation case object. |
| order | The execution oder priority of the simcomp. |
| preprocess_controller | The controller for running preprocessing. |
| compute_controller | The controller for running compute. |
| output_controller | The controller for producing output. |
Definition at line 67 of file simulation_component.f90.
|
inherited |
| case | The simulation case object. |
| order | The execution oder priority of the simcomp. |
| preprocess_controller | The controller for running preprocessing. |
| compute_controller | The controller for running compute. |
| output_controller | The controller for producing output. |
Definition at line 73 of file simulation_component.f90.
|
inherited |
| case | The simulation case object. |
| order | The execution oder priority of the simcomp. |
| preprocess_controller | Control mode for preprocessing. |
| preprocess_value | Value parameter for preprocessing. |
| compute_controller | Control mode for computing. |
| compute_value | Value parameter for computing. |
| output_controller | Control mode for output. |
| output_value | Value parameter for output. |
Definition at line 78 of file simulation_component.f90.
|
private |
| name | Unique simcomp name. |
| coef | SEM coefficients. |
| zone_indices | Labelled zones to include. |
| field_name | Name of the registered field to process. |
| operations | Requested operations in output order. |
| log | Whether to emit tabular log output. |
| output_filename | Optional CSV output filename. |
Definition at line 112 of file boundary_operation.f90.
| 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 | ||
| ) |
| name | Unique simcomp name. |
| case | Simulation case owning the simcomp. |
| order | Execution priority. |
| preprocess_control | Control mode for preprocessing. |
| preprocess_value | Control value for preprocessing. |
| compute_control | Control mode for computation. |
| compute_value | Control value for computation. |
| output_control | Control mode for output. |
| output_value | Control value for output. |
| zone_indices | Labelled zones to include. |
| field_name | Name of the registered field to process. |
| operations | Requested operations in output order. |
| log | Optional flag controlling log output. |
| output_filename | Optional CSV output filename. |
Definition at line 103 of file boundary_operation.f90.
| 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 | ||
| ) |
| name | Unique simcomp name. |
| case | Simulation case owning the simcomp. |
| order | Execution priority. |
| preprocess_controller | Controller for preprocessing. |
| compute_controller | Controller for computation. |
| output_controller | Controller for output. |
| zone_indices | Labelled zones to include. |
| field_name | Name of the registered field to process. |
| operations | Requested operations in output order. |
| log | Optional flag controlling log output. |
| output_filename | Optional CSV output filename. |
Definition at line 103 of file boundary_operation.f90.
| 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 | ||
| ) |
| name | Unique simcomp name. |
| case | Simulation case owning the simcomp. |
| order | Execution priority. |
| preprocess_controller | Controller for preprocessing. |
| compute_controller | Controller for computation. |
| output_controller | Controller for output. |
| zone_indices | Labelled zones to include. |
| field_name | Name of the registered field to process. |
| operations | Requested operations in output order. |
| log | Optional flag controlling log output. |
| output_filename | Optional CSV output filename. |
Definition at line 106 of file boundary_operation.f90.
| 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 | ||
| ) |
| name | Unique simcomp name. |
| case | Simulation case owning the simcomp. |
| order | Execution priority. |
| preprocess_control | Control mode for preprocessing. |
| preprocess_value | Control value for preprocessing. |
| compute_control | Control mode for computation. |
| compute_value | Control value for computation. |
| output_control | Control mode for output. |
| output_value | Control value for output. |
| zone_indices | Labelled zones to include. |
| field_name | Name of the registered field to process. |
| operations | Requested operations in output order. |
| log | Optional flag controlling log output. |
| output_filename | Optional CSV output filename. |
Definition at line 109 of file boundary_operation.f90.
|
inherited |
| json | The JSON dictionary of the simcomp. |
| case_params | The entire case configuration JSON. |
| preprocess_value | Control mode for preprocessing. |
| preprocess_controller | Value parameter for preprocessing. |
| compute_controller | Control mode for computing. |
| compute_controller | Value parameter for computing. |
| output_controller | Control mode for output. |
| output_controller | Value parameter for output. |
Definition at line 103 of file simulation_component.f90.
|
inherited |
| time | The current time. |
Definition at line 87 of file simulation_component.f90.
|
inherited |
| time | The current time. |
Definition at line 97 of file simulation_component.f90.
|
inherited |
| time | The current time. |
Definition at line 84 of file simulation_component.f90.
|
inherited |
| time | The current time. |
Definition at line 101 of file simulation_component.f90.
| type(vector_t) boundary_operation::boundary_operation_t::areas |
Definition at line 88 of file boundary_operation.f90.
Definition at line 94 of file boundary_operation.f90.
| type(neumann_t) boundary_operation::boundary_operation_t::bc |
Definition at line 64 of file boundary_operation.f90.
Definition at line 52 of file simulation_component.f90.
Definition at line 62 of file boundary_operation.f90.
| logical boundary_operation::boundary_operation_t::compute_average = .false. |
Definition at line 74 of file boundary_operation.f90.
|
inherited |
Definition at line 56 of file simulation_component.f90.
| logical boundary_operation::boundary_operation_t::compute_integral = .false. |
Definition at line 72 of file boundary_operation.f90.
| logical boundary_operation::boundary_operation_t::compute_max = .false. |
Definition at line 78 of file boundary_operation.f90.
| logical boundary_operation::boundary_operation_t::compute_min = .false. |
Definition at line 76 of file boundary_operation.f90.
| type(file_t) boundary_operation::boundary_operation_t::csv_output |
Definition at line 84 of file boundary_operation.f90.
| logical boundary_operation::boundary_operation_t::csv_output_enabled = .false. |
Definition at line 82 of file boundary_operation.f90.
| type(vector_t) boundary_operation::boundary_operation_t::csv_row |
Definition at line 86 of file boundary_operation.f90.
Definition at line 60 of file boundary_operation.f90.
| character(len=:), allocatable boundary_operation::boundary_operation_t::field_name |
Definition at line 68 of file boundary_operation.f90.
Definition at line 92 of file boundary_operation.f90.
| logical boundary_operation::boundary_operation_t::log = .true. |
Definition at line 80 of file boundary_operation.f90.
Definition at line 98 of file boundary_operation.f90.
Definition at line 96 of file boundary_operation.f90.
|
inherited |
Definition at line 62 of file simulation_component.f90.
| character(len=16), dimension(:), allocatable boundary_operation::boundary_operation_t::operations |
Definition at line 70 of file boundary_operation.f90.
|
inherited |
Definition at line 60 of file simulation_component.f90.
|
inherited |
Definition at line 58 of file simulation_component.f90.
|
inherited |
Definition at line 54 of file simulation_component.f90.
| type(vector_t) boundary_operation::boundary_operation_t::surface_values |
Definition at line 90 of file boundary_operation.f90.
| integer, dimension(:), allocatable boundary_operation::boundary_operation_t::zone_indices |
Definition at line 66 of file boundary_operation.f90.