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

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...

Inheritance diagram for field_subsampler::field_subsampler_t:
Collaboration diagram for field_subsampler::field_subsampler_t:

Public Member Functions

procedure, pass(thisinit (this, json, case)
 Constructor from JSON.
 
procedure, pass(thisinit_common (this, name, which_fields, lx, point_zone)
 Common constructor.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thiscompute_ (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(thisinit_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(thisinit_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(thischeck (this)
 Check valid initialization and assignment of variables.
 
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

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_tfields
 Pointers to the subsampled fields in the registry.
 
type(field_list_tsource_fields
 Pointers to the source fields in the registry.
 
type(field_writer_twriter
 Internal field writer object for output.
 
type(dofmap_tdof
 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_tinterpolator
 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_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.
 

Detailed Description

Definition at line 71 of file field_subsampler.f90.

Member Function/Subroutine Documentation

◆ check()

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.

◆ 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) 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.

◆ 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) field_subsampler::field_subsampler_t::free ( class(field_subsampler_t), intent(inout this)

Definition at line 130 of file field_subsampler.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) 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.

◆ 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) 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 
)
Parameters
nameThe unique name of the simcomp.
which_fieldsThe names of the fields to be subsampled.
lxThe number of GLL points to use for subsampling.
point_zoneThe point zone to use for subsampling.

Definition at line 127 of file field_subsampler.f90.

◆ init_from_components() [1/2]

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 
)
Parameters
nameThe unique name of the simcomp.
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.
which_fieldsList of field names to subsample.
lxNumber of GLL points to use for the space-to-space interpolation.
point_zonePoint zone to use for the subsampling.

Definition at line 134 of file field_subsampler.f90.

◆ init_from_components() [2/2]

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 
)
Parameters
nameThe unique name of the simcomp.
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.
which_fieldsList of field names to subsample.
lxNumber of GLL points to use for the space-to-space interpolation.
point_zonePoint zone to use for the subsampling.

Definition at line 134 of file field_subsampler.f90.

◆ init_from_controllers()

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 
)
Parameters
nameThe unique name of the simcomp.
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.
which_fieldsList of field names to subsample.
lxNumber of GLL points to use for the space-to-space interpolation.
point_zonePoint zone to use for the subsampling.

Definition at line 137 of file field_subsampler.f90.

◆ init_from_controllers_properties()

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 
)
Parameters
nameThe unique name of the simcomp.
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.
which_fieldsList of field names to subsample.
lxNumber of GLL points to use for the space-to-space interpolation.
point_zonePoint zone to use for the subsampling.

Definition at line 141 of file field_subsampler.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

◆ case

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

Definition at line 52 of file simulation_component.f90.

◆ checked

logical field_subsampler::field_subsampler_t::checked = .false.

Definition at line 121 of file field_subsampler.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_impl

procedure(compute_intrf), pointer, pass field_subsampler::field_subsampler_t::compute_impl => dummy_compute

Definition at line 75 of file field_subsampler.f90.

◆ dof

type(dofmap_t) field_subsampler::field_subsampler_t::dof

Definition at line 89 of file field_subsampler.f90.

◆ field_names

character(len=80), dimension(:), allocatable field_subsampler::field_subsampler_t::field_names

Definition at line 79 of file field_subsampler.f90.

◆ fields

type(field_list_t) field_subsampler::field_subsampler_t::fields

Definition at line 83 of file field_subsampler.f90.

◆ internal_mesh

logical field_subsampler::field_subsampler_t::internal_mesh = .false.

Definition at line 101 of file field_subsampler.f90.

◆ internal_space

logical field_subsampler::field_subsampler_t::internal_space = .false.

Definition at line 117 of file field_subsampler.f90.

◆ interpolator

type(interpolator_t) field_subsampler::field_subsampler_t::interpolator

Definition at line 109 of file field_subsampler.f90.

◆ lx

integer field_subsampler::field_subsampler_t::lx = -1

Definition at line 107 of file field_subsampler.f90.

◆ msh

type(mesh_t), pointer field_subsampler::field_subsampler_t::msh => null()

Definition at line 99 of file field_subsampler.f90.

◆ n_fields

integer field_subsampler::field_subsampler_t::n_fields = 0

Definition at line 81 of file field_subsampler.f90.

◆ name

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

Definition at line 62 of file simulation_component.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.

◆ point_zone

class(point_zone_t), pointer field_subsampler::field_subsampler_t::point_zone => null()

Definition at line 95 of file field_subsampler.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.

◆ source_fields

type(field_list_t) field_subsampler::field_subsampler_t::source_fields

Definition at line 85 of file field_subsampler.f90.

◆ writer

type(field_writer_t) field_subsampler::field_subsampler_t::writer

Definition at line 87 of file field_subsampler.f90.

◆ xh

type(space_t), pointer field_subsampler::field_subsampler_t::xh => null()

Definition at line 113 of file field_subsampler.f90.


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