Neko 1.99.9
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
wall_distance_sampler::wall_distance_sampler_t Type Referenceabstract

Implements wall-normal sampling at prescribed physical distances. More...

Inheritance diagram for wall_distance_sampler::wall_distance_sampler_t:
Collaboration diagram for wall_distance_sampler::wall_distance_sampler_t:

Public Member Functions

procedure, pass(thisinit (this, json)
 Partial constructor from JSON.
 
procedure, pass(thisinit_from_distances (this, distances, output_h)
 Partial constructor from physical wall-normal distances.
 
procedure, pass(thisinit_from_components (this, coef, distances, xyz, h, output_h)
 Fully construct a sampler from its resolved components.
 
procedure, pass(thisfinalize (this, coef, msk, facet, n_x, n_y, n_z, bc_name, user)
 Finalize by computing sampling point locations and building the interpolator.
 
procedure, pass(thissample (this, field, values)
 Sample the solution field at the sampling points.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thisinit_base (this, n_nodes, n_samples, h, output_h)
 Initialise state common to all fully constructed wall samplers.
 
procedure, pass(thisoutput_h (this, coef, msk, bc_name)
 Write the wall-normal sampling distance as a field file.
 
procedure(wall_sampler_init), deferred, pass init (this, json)
 Parse sampler-specific configuration from JSON.
 
procedure(wall_sampler_finalize), deferred, pass finalize (this, coef, msk, facet, n_x, n_y, n_z, bc_name, user)
 Complete sampler setup after geometric and wall-node data are known.
 
procedure(wall_sampler_sample), deferred, pass sample (this, field, values)
 Sample the solution field at the sampling points.
 
procedure(wall_sampler_free), deferred, pass free (this)
 Release sampler resources.
 

Public Attributes

real(kind=rp), dimension(:), allocatable distances
 Physical distances from the wall for each sampling point.
 
real(kind=rp), dimension(:,:), allocatable xyz
 Sampling point locations with shape (3, n_nodes * n_samples).
 
type(global_interpolation_tinterpolator
 Interpolator for sampling the solution field at the sampling points.
 
integer n_nodes = 0
 Number of wall nodes local to this rank.
 
integer n_samples = 0
 Number of sampling points associated with each wall node.
 
logical user_values = .false.
 True when sampling values are supplied by a user callback.
 
logical output_h_enabled = .true.
 True when the wall-normal sampling distance is written to a field.
 
type(vector_th
 Wall-normal distance of every sampling point. The layout is (node - 1) * n_samples + sample.
 

Private Member Functions

procedure, pass(this), private init_from_user (this, n_samples, output_h)
 Partial constructor for user-provided sampling distances.
 

Detailed Description

Definition at line 51 of file wall_distance_sampler.f90.

Member Function/Subroutine Documentation

◆ finalize() [1/2]

procedure, pass(this) wall_distance_sampler::wall_distance_sampler_t::finalize ( class(wall_distance_sampler_t), intent(inout this,
type(coef_t), intent(in coef,
integer, dimension(0:), intent(in msk,
integer, dimension(0:), intent(in facet,
type(vector_t), intent(in n_x,
type(vector_t), intent(in n_y,
type(vector_t), intent(in n_z,
character(len=*), intent(in), optional  bc_name,
type(user_t), intent(in), optional, target  user 
)
Parameters
coefSEM coefficients.
mskMask selecting local wall nodes.
facetFacet index for each selected wall node.
n_xX-component of wall-normal vectors at wall nodes.
n_yY-component of wall-normal vectors at wall nodes.
n_zZ-component of wall-normal vectors at wall nodes.
bc_nameName of the owning boundary condition for user values.
userUser interface providing the distance-sampling callback.

Definition at line 72 of file wall_distance_sampler.f90.

◆ finalize() [2/2]

procedure(wall_sampler_finalize), deferred, pass wall_sampler::wall_sampler_t::finalize ( class(wall_sampler_t), intent(inout this,
type(coef_t), intent(in coef,
integer, dimension(0:), intent(in msk,
integer, dimension(0:), intent(in facet,
type(vector_t), intent(in n_x,
type(vector_t), intent(in n_y,
type(vector_t), intent(in n_z,
character(len=*), intent(in), optional  bc_name,
type(user_t), intent(in), optional, target  user 
)
pure virtualinherited

Definition at line 73 of file wall_sampler.f90.

◆ free() [1/2]

procedure, pass(this) wall_distance_sampler::wall_distance_sampler_t::free ( class(wall_distance_sampler_t), intent(inout this)

Definition at line 76 of file wall_distance_sampler.f90.

◆ free() [2/2]

procedure(wall_sampler_free), deferred, pass wall_sampler::wall_sampler_t::free ( class(wall_sampler_t), intent(inout this)
pure virtualinherited

Definition at line 77 of file wall_sampler.f90.

◆ init() [1/2]

procedure, pass(this) wall_distance_sampler::wall_distance_sampler_t::init ( class(wall_distance_sampler_t), intent(inout this,
type(json_file), intent(inout json 
)
Parameters
jsonSampler configuration data.

Definition at line 60 of file wall_distance_sampler.f90.

◆ init() [2/2]

procedure(wall_sampler_init), deferred, pass wall_sampler::wall_sampler_t::init ( class(wall_sampler_t), intent(inout this,
type(json_file), intent(inout json 
)
pure virtualinherited

Definition at line 71 of file wall_sampler.f90.

◆ init_base()

procedure, pass(this) wall_sampler::wall_sampler_t::init_base ( class(wall_sampler_t), intent(inout this,
integer, intent(in n_nodes,
integer, intent(in n_samples,
type(vector_t), intent(in h,
logical, intent(in output_h 
)
inherited
Parameters
n_nodesNumber of local wall nodes.
n_samplesNumber of samples at each wall node.
hWall-normal distances in sampler ordering.
output_hWhether to write the sampling-distance diagnostic.

Definition at line 67 of file wall_sampler.f90.

◆ init_from_components()

procedure, pass(this) wall_distance_sampler::wall_distance_sampler_t::init_from_components ( class(wall_distance_sampler_t), intent(inout this,
type(coef_t), intent(in coef,
real(kind=rp), dimension(:), intent(in distances,
real(kind=rp), dimension(:,:), intent(in xyz,
type(vector_t), intent(in h,
logical, intent(in output_h 
)
Note
No compatibility checks are performed, input data is assumed to be valid. Checking would require geometric information.
Parameters
coefSEM coefficients used to construct global interpolation.
distancesPhysical distances, one for each sample per wall node.
xyzSampling locations with shape (3, n_nodes * n_samples).
hWall-normal distances in sampler ordering.
output_hSampling-distance diagnostic output flag.

Definition at line 68 of file wall_distance_sampler.f90.

◆ init_from_distances()

procedure, pass(this) wall_distance_sampler::wall_distance_sampler_t::init_from_distances ( class(wall_distance_sampler_t), intent(inout this,
real(kind=rp), dimension(:), intent(in distances,
logical, intent(in output_h 
)
Parameters
distancesPositive distances, one for each sampling point per wall node.
output_hWhether to write the sampling-distance diagnostic.

Definition at line 62 of file wall_distance_sampler.f90.

◆ init_from_user()

procedure, pass(this), private wall_distance_sampler::wall_distance_sampler_t::init_from_user ( class(wall_distance_sampler_t), intent(inout this,
integer, intent(in n_samples,
logical, intent(in output_h 
)
private
Parameters
n_samplesNumber of samples per wall node.
output_hWhether to write the sampling-distance diagnostic.

Definition at line 65 of file wall_distance_sampler.f90.

◆ output_h()

procedure, pass(this) wall_sampler::wall_sampler_t::output_h ( class(wall_sampler_t), intent(inout this,
type(coef_t), intent(in coef,
integer, dimension(0:), intent(in msk,
character(len=*), intent(in bc_name 
)
inherited

The first sample is written to retain a scalar diagnostic field when samplers support multiple points per wall node.

Parameters
coefSEM coefficients defining the output field.
mskMask selecting local wall nodes.
bc_nameName of the owning boundary condition.

Definition at line 69 of file wall_sampler.f90.

◆ sample() [1/2]

procedure, pass(this) wall_distance_sampler::wall_distance_sampler_t::sample ( class(wall_distance_sampler_t), intent(inout this,
type(field_t), intent(inout field,
type(vector_t), intent(inout values 
)
Parameters
fieldField to be sampled.
valuesOutput sampled values in sampler ordering.

Definition at line 74 of file wall_distance_sampler.f90.

◆ sample() [2/2]

procedure(wall_sampler_sample), deferred, pass wall_sampler::wall_sampler_t::sample ( class(wall_sampler_t), intent(inout this,
type(field_t), intent(inout field,
type(vector_t), intent(inout values 
)
pure virtualinherited

Definition at line 75 of file wall_sampler.f90.

Member Data Documentation

◆ distances

real(kind=rp), dimension(:), allocatable wall_distance_sampler::wall_distance_sampler_t::distances

Definition at line 53 of file wall_distance_sampler.f90.

◆ h

type(vector_t) wall_sampler::wall_sampler_t::h
inherited

Definition at line 64 of file wall_sampler.f90.

◆ interpolator

type(global_interpolation_t) wall_distance_sampler::wall_distance_sampler_t::interpolator

Definition at line 57 of file wall_distance_sampler.f90.

◆ n_nodes

integer wall_sampler::wall_sampler_t::n_nodes = 0
inherited

Definition at line 55 of file wall_sampler.f90.

◆ n_samples

integer wall_sampler::wall_sampler_t::n_samples = 0
inherited

Definition at line 57 of file wall_sampler.f90.

◆ output_h_enabled

logical wall_sampler::wall_sampler_t::output_h_enabled = .true.
inherited

Definition at line 61 of file wall_sampler.f90.

◆ user_values

logical wall_sampler::wall_sampler_t::user_values = .false.
inherited

Definition at line 59 of file wall_sampler.f90.

◆ xyz

real(kind=rp), dimension(:,:), allocatable wall_distance_sampler::wall_distance_sampler_t::xyz

Definition at line 55 of file wall_distance_sampler.f90.


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