|
Neko 1.99.3
A portable framework for high-order spectral element flow simulations
|
Implements the field_subsampler_t simulation components, which allows for masking regions of the domain with a point_zone and to re-sample fields with a different polynomial order. More...


Public Member Functions | |
| procedure, pass(this) | init (this, json, case) |
| Constructor from JSON. | |
| procedure, pass(this) | init_common (this, name, which_fields, lx, point_zone) |
| Common constructor. | |
| procedure, pass(this) | free (this) |
| Destructor. | |
| procedure, pass(this) | compute_ (this, time) |
| Compute the indicator (called according to the simcomp controller). | |
| generic | init_from_components (this, name, case, order, preprocess_controller, compute_controller, output_controller, which_fields, lx, point_zone) |
| Generic for constructing from components. | |
| generic | init_from_components (this, name, case, order, preprocess_control, preprocess_value, compute_control, compute_value, output_control, output_value, which_fields, lx, point_zone) |
| Generic for constructing from components. | |
| procedure, pass(this) | init_from_controllers (this, name, case, order, preprocess_controller, compute_controller, output_controller, which_fields, lx, point_zone) |
| Constructor from components, passing 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, which_fields, lx, point_zone) |
| Constructor from components, passing the properties of time_based_controllers. | |
| procedure, pass(this) | check (this) |
| Check valid initialization and assignment of variables. | |
| 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 | |
| procedure(compute_intrf), pointer, pass | compute_impl => dummy_compute |
| Abstract interface for the compute() subroutine, which will be assigned at runtime depending on the subsampling method used. | |
| character(len=80), dimension(:), allocatable | field_names |
| Fields to subsample. | |
| integer | n_fields = 0 |
| Number of fields to subsample (size of field_names). | |
| type(field_list_t) | fields |
| Pointers to the subsampled fields in the registry. | |
| type(field_list_t) | source_fields |
| Pointers to the source fields in the registry. | |
| type(field_writer_t) | writer |
| Internal field writer object for output. | |
| type(dofmap_t) | dof |
| The dofmap to use for the newly created masked/re-sampled fields. | |
| class(point_zone_t), pointer | point_zone => null() |
| Point zone to use for subsampling. | |
| type(mesh_t), pointer | msh => null() |
| Points to the new mesh for element masking. If no point zone, is used, thismsh will point to the same mesh as the current sim. | |
| logical | internal_mesh = .false. |
| Indicates if the instance of msh is internally managed. | |
| integer | lx = -1 |
| New polynomial order to use for subsampling. | |
| type(interpolator_t) | interpolator |
| Space-to-space interpolator object. | |
| type(space_t), pointer | xh => null() |
| Points to the new space for resampling. If no point zone is provided, will point to the same space as the current sim. Otherwise, will point to its own masked one. | |
| logical | internal_space = .false. |
| Indicates if the instance of msh is internally managed. Also serves as a flag for determining whether or not to perform space-to-space interpolation. | |
| logical | checked = .false. |
| Flag to indicate whether thischeck() has been called and no errors were found. | |
| 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. | |
Definition at line 71 of file field_subsampler.f90.
| procedure, pass(this) field_subsampler::field_subsampler_t::check | ( | class(field_subsampler_t), intent(inout) | this | ) |
Definition at line 144 of file field_subsampler.f90.
|
inherited |
| time | The current time. |
Definition at line 91 of file simulation_component.f90.
| procedure, pass(this) field_subsampler::field_subsampler_t::compute_ | ( | class(field_subsampler_t), intent(inout) | this, |
| type(time_state_t), intent(in) | time | ||
| ) |
Definition at line 132 of file field_subsampler.f90.
|
inherited |
| time | The current time. |
Definition at line 99 of file simulation_component.f90.
| procedure, pass(this) field_subsampler::field_subsampler_t::free | ( | class(field_subsampler_t), intent(inout) | this | ) |
Definition at line 130 of file field_subsampler.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) field_subsampler::field_subsampler_t::init | ( | class(field_subsampler_t), intent(inout), target | this, |
| type(json_file), intent(inout) | json, | ||
| class(case_t), intent(inout), target | case | ||
| ) |
Definition at line 125 of file field_subsampler.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.
| procedure, pass(this) field_subsampler::field_subsampler_t::init_common | ( | class(field_subsampler_t), intent(inout) | this, |
| character(len=*), intent(in) | name, | ||
| character(len=*), dimension(:), intent(in) | which_fields, | ||
| integer, intent(in), optional | lx, | ||
| class(point_zone_t), intent(in), optional, pointer | point_zone | ||
| ) |
| name | The unique name of the simcomp. |
| which_fields | The names of the fields to be subsampled. |
| lx | The number of GLL points to use for subsampling. |
| point_zone | The point zone to use for subsampling. |
Definition at line 127 of file field_subsampler.f90.
| generic field_subsampler::field_subsampler_t::init_from_components | ( | class(field_subsampler_t), intent(inout) | this, |
| character(len=*), intent(in) | name, | ||
| 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, | ||
| character(len=*), dimension(:), intent(in) | which_fields, | ||
| integer, intent(in), optional | lx, | ||
| class(point_zone_t), intent(in), optional, pointer | point_zone | ||
| ) |
| name | The unique name of the simcomp. |
| 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. |
| which_fields | List of field names to subsample. |
| lx | Number of GLL points to use for the space-to-space interpolation. |
| point_zone | Point zone to use for the subsampling. |
Definition at line 134 of file field_subsampler.f90.
| generic field_subsampler::field_subsampler_t::init_from_components | ( | class(field_subsampler_t), intent(inout) | this, |
| character(len=*), intent(in) | name, | ||
| 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, | ||
| character(len=*), dimension(:), intent(in) | which_fields, | ||
| integer, intent(in) | lx, | ||
| class(point_zone_t), intent(in), optional, pointer | point_zone | ||
| ) |
| name | The unique name of the simcomp. |
| 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. |
| which_fields | List of field names to subsample. |
| lx | Number of GLL points to use for the space-to-space interpolation. |
| point_zone | Point zone to use for the subsampling. |
Definition at line 134 of file field_subsampler.f90.
| procedure, pass(this) field_subsampler::field_subsampler_t::init_from_controllers | ( | class(field_subsampler_t), intent(inout) | this, |
| character(len=*), intent(in) | name, | ||
| 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, | ||
| character(len=*), dimension(:), intent(in) | which_fields, | ||
| integer, intent(in) | lx, | ||
| class(point_zone_t), intent(in), optional, pointer | point_zone | ||
| ) |
| name | The unique name of the simcomp. |
| 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. |
| which_fields | List of field names to subsample. |
| lx | Number of GLL points to use for the space-to-space interpolation. |
| point_zone | Point zone to use for the subsampling. |
Definition at line 137 of file field_subsampler.f90.
| procedure, pass(this) field_subsampler::field_subsampler_t::init_from_controllers_properties | ( | class(field_subsampler_t), intent(inout) | this, |
| character(len=*), intent(in) | name, | ||
| 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, | ||
| character(len=*), dimension(:), intent(in) | which_fields, | ||
| integer, intent(in), optional | lx, | ||
| class(point_zone_t), intent(in), optional, pointer | point_zone | ||
| ) |
| name | The unique name of the simcomp. |
| 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. |
| which_fields | List of field names to subsample. |
| lx | Number of GLL points to use for the space-to-space interpolation. |
| point_zone | Point zone to use for the subsampling. |
Definition at line 141 of file field_subsampler.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.
Definition at line 52 of file simulation_component.f90.
| logical field_subsampler::field_subsampler_t::checked = .false. |
Definition at line 121 of file field_subsampler.f90.
|
inherited |
Definition at line 56 of file simulation_component.f90.
| procedure(compute_intrf), pointer, pass field_subsampler::field_subsampler_t::compute_impl => dummy_compute |
Definition at line 75 of file field_subsampler.f90.
| type(dofmap_t) field_subsampler::field_subsampler_t::dof |
Definition at line 89 of file field_subsampler.f90.
| character(len=80), dimension(:), allocatable field_subsampler::field_subsampler_t::field_names |
Definition at line 79 of file field_subsampler.f90.
| type(field_list_t) field_subsampler::field_subsampler_t::fields |
Definition at line 83 of file field_subsampler.f90.
| logical field_subsampler::field_subsampler_t::internal_mesh = .false. |
Definition at line 101 of file field_subsampler.f90.
| logical field_subsampler::field_subsampler_t::internal_space = .false. |
Definition at line 117 of file field_subsampler.f90.
| type(interpolator_t) field_subsampler::field_subsampler_t::interpolator |
Definition at line 109 of file field_subsampler.f90.
| integer field_subsampler::field_subsampler_t::lx = -1 |
Definition at line 107 of file field_subsampler.f90.
Definition at line 99 of file field_subsampler.f90.
| integer field_subsampler::field_subsampler_t::n_fields = 0 |
Definition at line 81 of file field_subsampler.f90.
|
inherited |
Definition at line 62 of file simulation_component.f90.
|
inherited |
Definition at line 60 of file simulation_component.f90.
|
inherited |
Definition at line 58 of file simulation_component.f90.
| class(point_zone_t), pointer field_subsampler::field_subsampler_t::point_zone => null() |
Definition at line 95 of file field_subsampler.f90.
|
inherited |
Definition at line 54 of file simulation_component.f90.
| type(field_list_t) field_subsampler::field_subsampler_t::source_fields |
Definition at line 85 of file field_subsampler.f90.
| type(field_writer_t) field_subsampler::field_subsampler_t::writer |
Definition at line 87 of file field_subsampler.f90.
Definition at line 113 of file field_subsampler.f90.