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

Wall sampler implementation for GLL nodes at prescribed off-wall indices. More...

Inheritance diagram for wall_gll_sampler::wall_gll_sampler_t:
Collaboration diagram for wall_gll_sampler::wall_gll_sampler_t:

Public Member Functions

procedure, pass(thisinit (this, json)
 Partial constructor from JSON.
 
procedure, pass(thisinit_from_indices (this, indices, output_h)
 Partial constructor from off-wall GLL indices.
 
procedure, pass(thisinit_from_components (this, indices, sample_idx, 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)
 Construct field indices and wall-normal distances for sampling.
 
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

integer, dimension(:), allocatable indices
 Off-wall GLL indices for each sampling point per wall node.
 
type(mask_tsample_idx
 Linear indices into the sampled fields.
 
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 GLL indices.
 

Detailed Description

Definition at line 53 of file wall_gll_sampler.f90.

Member Function/Subroutine Documentation

◆ finalize() [1/2]

procedure, pass(this) wall_gll_sampler::wall_gll_sampler_t::finalize ( class(wall_gll_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 GLL-sampling callback.

Definition at line 71 of file wall_gll_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_gll_sampler::wall_gll_sampler_t::free ( class(wall_gll_sampler_t), intent(inout this)

Definition at line 75 of file wall_gll_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_gll_sampler::wall_gll_sampler_t::init ( class(wall_gll_sampler_t), intent(inout this,
type(json_file), intent(inout json 
)
Parameters
jsonSampler configuration data.

Definition at line 60 of file wall_gll_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_gll_sampler::wall_gll_sampler_t::init_from_components ( class(wall_gll_sampler_t), intent(inout this,
integer, dimension(:), intent(in indices,
integer, dimension(:), intent(in sample_idx,
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
indicesOff-wall GLL indices for each sample per wall node.
sample_idxLinear sampled-field indices in sampler ordering.
hWall-normal distances in sampler ordering.
output_hSampling-distance diagnostic output flag.

Definition at line 68 of file wall_gll_sampler.f90.

◆ init_from_indices()

procedure, pass(this) wall_gll_sampler::wall_gll_sampler_t::init_from_indices ( class(wall_gll_sampler_t), intent(inout this,
integer, dimension(:), intent(in indices,
logical, intent(in output_h 
)
Parameters
indicesPositive GLL indices, one for each sampling point per wall node.
output_hWhether to write the sampling-distance diagnostic.

Definition at line 62 of file wall_gll_sampler.f90.

◆ init_from_user()

procedure, pass(this), private wall_gll_sampler::wall_gll_sampler_t::init_from_user ( class(wall_gll_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_gll_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_gll_sampler::wall_gll_sampler_t::sample ( class(wall_gll_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 73 of file wall_gll_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

◆ h

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

Definition at line 64 of file wall_sampler.f90.

◆ indices

integer, dimension(:), allocatable wall_gll_sampler::wall_gll_sampler_t::indices

Definition at line 55 of file wall_gll_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.

◆ sample_idx

type(mask_t) wall_gll_sampler::wall_gll_sampler_t::sample_idx

Definition at line 57 of file wall_gll_sampler.f90.

◆ user_values

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

Definition at line 59 of file wall_sampler.f90.


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