|
Neko 1.99.9
A portable framework for high-order spectral element flow simulations
|
Implements wall-normal sampling at prescribed physical distances. More...


Public Member Functions | |
| procedure, pass(this) | init (this, json) |
| Partial constructor from JSON. | |
| procedure, pass(this) | init_from_distances (this, distances, output_h) |
| Partial constructor from physical wall-normal distances. | |
| procedure, pass(this) | init_from_components (this, coef, distances, xyz, h, output_h) |
| Fully construct a sampler from its resolved components. | |
| procedure, pass(this) | finalize (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(this) | sample (this, field, values) |
| Sample the solution field at the sampling points. | |
| procedure, pass(this) | free (this) |
| Destructor. | |
| procedure, pass(this) | init_base (this, n_nodes, n_samples, h, output_h) |
| Initialise state common to all fully constructed wall samplers. | |
| procedure, pass(this) | output_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_t) | interpolator |
| 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_t) | h |
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. | |
Definition at line 51 of file wall_distance_sampler.f90.
| 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 | ||
| ) |
| coef | SEM coefficients. |
| msk | Mask selecting local wall nodes. |
| facet | Facet index for each selected wall node. |
| n_x | X-component of wall-normal vectors at wall nodes. |
| n_y | Y-component of wall-normal vectors at wall nodes. |
| n_z | Z-component of wall-normal vectors at wall nodes. |
| bc_name | Name of the owning boundary condition for user values. |
| user | User interface providing the distance-sampling callback. |
Definition at line 72 of file wall_distance_sampler.f90.
|
pure virtualinherited |
Definition at line 73 of file wall_sampler.f90.
| 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.
|
pure virtualinherited |
Definition at line 77 of file wall_sampler.f90.
| 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 | ||
| ) |
| json | Sampler configuration data. |
Definition at line 60 of file wall_distance_sampler.f90.
|
pure virtualinherited |
Definition at line 71 of file wall_sampler.f90.
|
inherited |
| n_nodes | Number of local wall nodes. |
| n_samples | Number of samples at each wall node. |
| h | Wall-normal distances in sampler ordering. |
| output_h | Whether to write the sampling-distance diagnostic. |
Definition at line 67 of file wall_sampler.f90.
| 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 | ||
| ) |
| coef | SEM coefficients used to construct global interpolation. |
| distances | Physical distances, one for each sample per wall node. |
| xyz | Sampling locations with shape (3, n_nodes * n_samples). |
| h | Wall-normal distances in sampler ordering. |
| output_h | Sampling-distance diagnostic output flag. |
Definition at line 68 of file wall_distance_sampler.f90.
| 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 | ||
| ) |
| distances | Positive distances, one for each sampling point per wall node. |
| output_h | Whether to write the sampling-distance diagnostic. |
Definition at line 62 of file wall_distance_sampler.f90.
|
private |
| n_samples | Number of samples per wall node. |
| output_h | Whether to write the sampling-distance diagnostic. |
Definition at line 65 of file wall_distance_sampler.f90.
|
inherited |
The first sample is written to retain a scalar diagnostic field when samplers support multiple points per wall node.
| coef | SEM coefficients defining the output field. |
| msk | Mask selecting local wall nodes. |
| bc_name | Name of the owning boundary condition. |
Definition at line 69 of file wall_sampler.f90.
| 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 | ||
| ) |
| field | Field to be sampled. |
| values | Output sampled values in sampler ordering. |
Definition at line 74 of file wall_distance_sampler.f90.
|
pure virtualinherited |
Definition at line 75 of file wall_sampler.f90.
| real(kind=rp), dimension(:), allocatable wall_distance_sampler::wall_distance_sampler_t::distances |
Definition at line 53 of file wall_distance_sampler.f90.
|
inherited |
Definition at line 64 of file wall_sampler.f90.
| type(global_interpolation_t) wall_distance_sampler::wall_distance_sampler_t::interpolator |
Definition at line 57 of file wall_distance_sampler.f90.
|
inherited |
Definition at line 55 of file wall_sampler.f90.
|
inherited |
Definition at line 57 of file wall_sampler.f90.
|
inherited |
Definition at line 61 of file wall_sampler.f90.
|
inherited |
Definition at line 59 of file wall_sampler.f90.
| real(kind=rp), dimension(:,:), allocatable wall_distance_sampler::wall_distance_sampler_t::xyz |
Definition at line 55 of file wall_distance_sampler.f90.