Neko 1.99.3
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
probes::probes_t Type Referenceabstract
Inheritance diagram for probes::probes_t:
Collaboration diagram for probes::probes_t:

Public Member Functions

procedure, pass(thisinit (this, json, case)
 Initialize from json.
 
procedure, pass(thisinit_from_components (this, dof, output_file, name, tolerance, padding)
 Initialize from parameters.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thissetup_offset (this)
 Setup offset for I/O when using sequential write/read from rank 0.
 
procedure, pass(thiscompute_ (this, time)
 Interpolate each probe from its r,s,t coordinates.
 
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
 Time after which to start collecting probes.
 
integer n_fields = 0
 Number of output fields.
 
type(global_interpolation_tglobal_interp
 
integer n_global_probes
 Global number of probes (needed for i/o)
 
integer n_probes_offset
 global offset for writing
 
real(kind=rp), dimension(:,:), allocatable xyz
 x,y,z coordinates
 
real(kind=rp), dimension(:,:), allocatable out_values
 Interpolated values.
 
type(c_ptr), dimension(:), allocatable out_values_d
 
real(kind=rp), dimension(:,:), allocatable out_vals_trsp
 
integer n_local_probes
 Number of local elements per rank.
 
type(field_list_tsampled_fields
 Fields to be probed.
 
character(len=20), dimension(:), allocatable which_fields
 
integer, dimension(:), allocatable n_local_probes_tot_offset
 Allocated on rank 0.
 
integer, dimension(:), allocatable n_local_probes_tot
 
logical seq_io
 For output on rank 0.
 
real(kind=rp), dimension(:,:), allocatable global_output_values
 
type(file_tfout
 Output variables.
 
type(matrix_tmat_out
 
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, dof, output_file, name)
 Common constructor.
 
procedure, pass(this), private read_file (this, json)
 Reader for file type points.
 
procedure, pass(this), private read_point (this, json)
 Reader for point type points.
 
procedure, pass(this), private read_line (this, json)
 Reader for line type points.
 
procedure, pass(this), private read_circle (this, json)
 Reader for circle type points.
 
procedure, pass(this), private read_point_zone (this, json, dof)
 Reader for point zone type points.
 
procedure, pass(this), private add_points (this, new_points)
 Append a new list of points to the exsiting list.
 

Detailed Description

Definition at line 67 of file probes.F90.

Member Function/Subroutine Documentation

◆ add_points()

procedure, pass(this), private probes::probes_t::add_points ( class(probes_t), intent(inout this,
real(kind=rp), dimension(:,:), intent(in new_points 
)
private
Parameters
[in,out]thisThe probes object.
[in]new_pointsThe new points to be appended.

Definition at line 127 of file probes.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) probes::probes_t::compute_ ( class(probes_t), intent(inout this,
type(time_state_t), intent(in time 
)
Note
The final interpolated field is only available on rank 0.
Parameters
tCurrent simulation time.
tstepCurrent time step.

Definition at line 110 of file probes.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) probes::probes_t::free ( class(probes_t), intent(inout this)

Definition at line 106 of file probes.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) probes::probes_t::init ( class(probes_t), intent(inout), target  this,
type(json_file), intent(inout json,
class(case_t), intent(inout), target  case 
)

Definition at line 99 of file probes.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 probes::probes_t::init_common ( class(probes_t), intent(inout this,
type(dofmap_t), intent(in dof,
character(len=:), intent(inout), allocatable  output_file,
character(len=*), intent(in name 
)
private
Parameters
dofDofmap to probe
output_fileName of output file, current must be CSV
nameName of the probes simcomp.

Definition at line 104 of file probes.F90.

◆ init_from_components()

procedure, pass(this) probes::probes_t::init_from_components ( class(probes_t), intent(inout this,
type(dofmap_t), intent(in dof,
character(len=:), intent(inout), allocatable  output_file,
character(len=*), intent(in name,
real(kind=dp), intent(in), optional  tolerance,
real(kind=dp), intent(in), optional  padding 
)
Parameters
dofDofmap to probe
output_fileName of output file, current must be CSV
nameName of the probes simcomp.
toleranceTolerance for finding the probe coordinates.
paddingPadding for finding the probe coordinates.

Definition at line 101 of file probes.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.

◆ read_circle()

procedure, pass(this), private probes::probes_t::read_circle ( class(probes_t), intent(inout this,
type(json_file), intent(inout json 
)
private

The general structure of the circle is defined by a center point, a radius and a normal to the plane it lies on. The circle is then discretized into a number of points, based on the amount parameter. The points are added clockwise starting from a chosen axis, which is defined by the axis parameter.

Note
The axis must be one of the following: x, y, or z.
Parameters
[in,out]thisThe probes object.
[in,out]jsonThe json file object.

Definition at line 122 of file probes.F90.

◆ read_file()

procedure, pass(this), private probes::probes_t::read_file ( class(probes_t), intent(inout this,
type(json_file), intent(inout json 
)
private
Note
The points are expected to be in the form of a list of coordinates.
Parameters
[in,out]thisThe probes object.
[in,out]jsonThe json file object.

Definition at line 116 of file probes.F90.

◆ read_line()

procedure, pass(this), private probes::probes_t::read_line ( class(probes_t), intent(inout this,
type(json_file), intent(inout json 
)
private
Parameters
[in,out]thisThe probes object.
[in,out]jsonThe json file object.

Definition at line 120 of file probes.F90.

◆ read_point()

procedure, pass(this), private probes::probes_t::read_point ( class(probes_t), intent(inout this,
type(json_file), intent(inout json 
)
private
Note
The points are expected to be in the form of a list of coordinates.
Parameters
[in,out]thisThe probes object.
[in,out]jsonThe json file object.

Definition at line 118 of file probes.F90.

◆ read_point_zone()

procedure, pass(this), private probes::probes_t::read_point_zone ( class(probes_t), intent(inout this,
type(json_file), intent(inout json,
type(dofmap_t), intent(in dof 
)
private

The GLL points are read from the point zone and added to the probe list.

Parameters
[in,out]thisThe probes object.
[in,out]jsonThe json file object.

Definition at line 124 of file probes.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.

◆ setup_offset()

procedure, pass(this) probes::probes_t::setup_offset ( class(probes_t this)

Definition at line 108 of file probes.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.

◆ compute_controller

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

Definition at line 56 of file simulation_component.f90.

◆ fout

type(file_t) probes::probes_t::fout

Definition at line 95 of file probes.F90.

◆ global_interp

type(global_interpolation_t) probes::probes_t::global_interp

Definition at line 72 of file probes.F90.

◆ global_output_values

real(kind=rp), dimension(:,:), allocatable probes::probes_t::global_output_values

Definition at line 93 of file probes.F90.

◆ mat_out

type(matrix_t) probes::probes_t::mat_out

Definition at line 96 of file probes.F90.

◆ n_fields

integer probes::probes_t::n_fields = 0

Definition at line 71 of file probes.F90.

◆ n_global_probes

integer probes::probes_t::n_global_probes

Definition at line 74 of file probes.F90.

◆ n_local_probes

integer probes::probes_t::n_local_probes

Definition at line 84 of file probes.F90.

◆ n_local_probes_tot

integer, dimension(:), allocatable probes::probes_t::n_local_probes_tot

Definition at line 90 of file probes.F90.

◆ n_local_probes_tot_offset

integer, dimension(:), allocatable probes::probes_t::n_local_probes_tot_offset

Definition at line 89 of file probes.F90.

◆ n_probes_offset

integer probes::probes_t::n_probes_offset

Definition at line 76 of file probes.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.

◆ out_vals_trsp

real(kind=rp), dimension(:,:), allocatable probes::probes_t::out_vals_trsp

Definition at line 82 of file probes.F90.

◆ out_values

real(kind=rp), dimension(:,:), allocatable probes::probes_t::out_values

Definition at line 80 of file probes.F90.

◆ out_values_d

type(c_ptr), dimension(:), allocatable probes::probes_t::out_values_d

Definition at line 81 of file probes.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.

◆ sampled_fields

type(field_list_t) probes::probes_t::sampled_fields

Definition at line 86 of file probes.F90.

◆ seq_io

logical probes::probes_t::seq_io

Definition at line 92 of file probes.F90.

◆ start_time

real(kind=rp) probes::probes_t::start_time

Definition at line 69 of file probes.F90.

◆ which_fields

character(len=20), dimension(:), allocatable probes::probes_t::which_fields

Definition at line 87 of file probes.F90.

◆ xyz

real(kind=rp), dimension(:,:), allocatable probes::probes_t::xyz

Definition at line 78 of file probes.F90.


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