Neko 1.99.3
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
probes Module Reference

Implements probes. More...

Data Types

type  probes_t
 

Functions/Subroutines

subroutine probes_init_from_json (this, json, case)
 Constructor from json.
 
subroutine probes_init_from_components (this, dof, output_file, name, tolerance, padding)
 Initialize based on individual parameters.
 
subroutine read_file (this, json)
 Read a list of points from a csv file.
 
subroutine read_point (this, json)
 Read a list of points from the json file.
 
subroutine read_line (this, json)
 Construct a list of points from a line.
 
subroutine read_circle (this, json)
 Construct a list of points from a circle.
 
subroutine read_point_zone (this, json, dof)
 Construct a list of points from a point zone.
 
subroutine add_points (this, new_points)
 Append a new list of points to the exsiting list.
 
subroutine probes_init_common (this, dof, output_file, name)
 Common constructor.
 
subroutine probes_free (this)
 Destructor.
 
subroutine probes_show (this)
 Print current probe status, with number of probes and coordinates.
 
subroutine probes_debug (this)
 Show the status of processor/element owner and error code for each point.
 
subroutine probes_setup_offset (this)
 Setup offset for rank 0.
 
subroutine probes_evaluate_and_write (this, time)
 Interpolate each probe from its r,s,t coordinates.
 
subroutine read_probe_locations (this, xyz, n_local_probes, n_global_probes, points_file)
 Initialize the physical coordinates from a csv input file.
 
subroutine read_xyz_from_csv (xyz, n_local_probes, n_global_probes, f)
 Read and initialize the number of probes from a csv input file.
 

Detailed Description

Note
This modules uses functions from gslib, namely findpts_setup, findpts, and findpts_eval. A full description of these subroutines can be found at https://github.com/Nek5000/gslib/blob/master/src/findpts.c

Function/Subroutine Documentation

◆ add_points()

subroutine probes::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 477 of file probes.F90.

◆ probes_debug()

subroutine probes::probes_debug ( class(probes_t this)
private

Definition at line 665 of file probes.F90.

◆ probes_evaluate_and_write()

subroutine probes::probes_evaluate_and_write ( class(probes_t), intent(inout this,
type(time_state_t), intent(in time 
)
private
Note
The final interpolated field is only available on rank 0.
Parameters
tCurrent simulation time.
tstepCurrent time step.

Do not execute if we are below the start_time

Check controller to determine if we must write

Definition at line 706 of file probes.F90.

◆ probes_free()

subroutine probes::probes_free ( class(probes_t), intent(inout this)
private

Definition at line 586 of file probes.F90.

◆ probes_init_common()

subroutine probes::probes_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.

find probes and redistribute them

Allocate output array

Initialize the output file

Necessary for not-parallel csv format... offsets and n points per pe Needed at root for sequential csv i/o

Definition at line 510 of file probes.F90.

◆ probes_init_from_components()

subroutine probes::probes_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 
)
private
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 244 of file probes.F90.

◆ probes_init_from_json()

subroutine probes::probes_init_from_json ( class(probes_t), intent(inout), target  this,
type(json_file), intent(inout json,
class(case_t), intent(inout), target  case 
)

Read from case file

Definition at line 133 of file probes.F90.

Here is the call graph for this function:

◆ probes_setup_offset()

subroutine probes::probes_setup_offset ( class(probes_t this)
private

Definition at line 682 of file probes.F90.

◆ probes_show()

subroutine probes::probes_show ( class(probes_t), intent(in this)
private

Definition at line 635 of file probes.F90.

Here is the caller graph for this function:

◆ read_circle()

subroutine probes::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 360 of file probes.F90.

◆ read_file()

subroutine probes::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 270 of file probes.F90.

Here is the call graph for this function:

◆ read_line()

subroutine probes::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 316 of file probes.F90.

◆ read_point()

subroutine probes::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 291 of file probes.F90.

◆ read_point_zone()

subroutine probes::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 436 of file probes.F90.

Here is the call graph for this function:

◆ read_probe_locations()

subroutine probes::read_probe_locations ( class(probes_t), intent(inout this,
real(kind=rp), dimension(:,:), allocatable  xyz,
integer, intent(inout n_local_probes,
integer, intent(inout n_global_probes,
character(len=:), allocatable  points_file 
)
private
Parameters
points_fileA csv file containing probes.

Supporting variables

Reads on rank 0 and distributes the probes across the different ranks

Close the file

Definition at line 758 of file probes.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ read_xyz_from_csv()

subroutine probes::read_xyz_from_csv ( real(kind=rp), dimension(:,:), allocatable  xyz,
integer, intent(inout n_local_probes,
integer, intent(inout n_global_probes,
type(csv_file_t), intent(inout f 
)
private
Parameters
xyzxyz coordinates of the probes
n_local_probesThe number of probes local to this process
n_global_probesThe number of total probes on all processes
fThe csv file we read from

Definition at line 788 of file probes.F90.

Here is the caller graph for this function: