Cardinal
|
#include <NekBinnedVolumeAverage.h>
Public Member Functions | |
NekBinnedVolumeAverage (const InputParameters ¶meters) | |
virtual void | executeUserObject () override |
virtual Real | spatialValue (const Point &p, const unsigned int &component) const override |
virtual Real | spatialValue (const Point &p) const override final |
virtual void | getBinVolumes () override |
Get the volume of each bin, used for normalizing in derived classes. More... | |
virtual void | binnedVolumeIntegral (const field::NekFieldEnum &integrand, double *total_integral) |
virtual const unsigned int | bin (const Point &p) const |
virtual const unsigned int | num_bins () const |
virtual const std::vector< Point > | spatialPoints () const override |
virtual void | computeBinVolumes () final |
Compute the volume of each bin and check for zero contributions. More... | |
const std::vector< unsigned int > | unrolledBin (const unsigned int &total_bin_index) const |
const field::NekFieldEnum & | field () const |
Point | nekPoint (const int &local_elem_id, const int &local_node_id) const |
virtual void | initialize () |
virtual void | finalize () |
virtual void | execute () override |
Static Public Member Functions | |
static InputParameters | validParams () |
Protected Member Functions | |
void | computePoints1D () |
Get the output points for a single bin. More... | |
void | computePoints2D () |
Get the output points for two combined bins. More... | |
void | computePoints3D () |
Get the output points for three combined bins. More... | |
void | resetPartialStorage () |
Reset the scratch space storage to zero values. More... | |
void | fillCoordinates (const std::vector< unsigned int > &indices, Point &p) const |
Protected Attributes | |
const std::vector< UserObjectName > & | _bin_names |
Names of the userobjects providing the bins. More... | |
const field::NekFieldEnum | _field |
field to postprocess with the bins More... | |
const bool & | _map_space_by_qp |
const bool & | _check_zero_contributions |
std::vector< const SpatialBinUserObject * > | _bins |
Userobjects providing the bins. More... | |
std::vector< bool > | _has_direction |
For each x, y, z direction, whether the combined distribution covers that direction. More... | |
std::vector< unsigned int > | _bin_providing_direction |
For each x, y, z direction, which bin provides that direction. More... | |
component::BinnedVelocityComponentEnum | _velocity_component |
unsigned int | _n_bins |
total number of bins More... | |
std::vector< Point > | _points |
points at which to output the user object to give unique values More... | |
std::vector< Point > | _velocity_bin_directions |
velocity direction to use for each bin More... | |
double * | _bin_values |
values of the userobject in each bin More... | |
double * | _bin_values_x |
temporary storage space to hold the results of component-wise evaluations More... | |
double * | _bin_values_y |
double * | _bin_values_z |
double * | _bin_volumes |
Volumes of each bin. More... | |
int * | _bin_counts |
double * | _bin_partial_values |
Partial-sum of bin value per Nek rank. More... | |
int * | _bin_partial_counts |
Partial-sum of bin count per Nek rank. More... | |
const unsigned int & | _interval |
Interval with which to evaluate the user object. More... | |
const NekRSProblemBase * | _nek_problem |
Underlying problem object. More... | |
bool | _fixed_mesh |
Whether the mesh this userobject operates on is fixed, allowing caching of volumes and areas. More... | |
Compute a volume average of the NekRS solution in spatial bins.
NekBinnedVolumeAverage::NekBinnedVolumeAverage | ( | const InputParameters & | parameters | ) |
|
virtualinherited |
|
virtualinherited |
Compute a volume integral over the bins
[in] | integrand | field to integrate |
[out] | total_integral | integrated values in each bin |
|
finalvirtualinherited |
Compute the volume of each bin and check for zero contributions.
|
protectedinherited |
Get the output points for a single bin.
|
protectedinherited |
Get the output points for two combined bins.
|
protectedinherited |
Get the output points for three combined bins.
|
overridevirtualinherited |
|
overridevirtual |
Execute the user object; separating this call from execute() allows all derived classes to leverage this base class's 'interval' parameter to decide when to call the user object
Reimplemented from NekBinnedVolumeIntegral.
|
inlineinherited |
Get the integrating field
|
protectedinherited |
Get the coordinates for a point at the given indices for the bins
[in] | indices | indices of the bin distributions to combine |
[out] | p | point at the (i, j, k) indices of the combined bins |
|
inlinevirtualinherited |
|
overridevirtualinherited |
Get the volume of each bin, used for normalizing in derived classes.
Implements NekSpatialBinUserObject.
|
inlinevirtualinherited |
|
inherited |
Get the point at which to evaluate the user object
[in] | local_elem_id | local element ID on the Nek rank |
[in] | local_node_id | local node ID on the element |
|
virtualinherited |
|
protectedinherited |
Reset the scratch space storage to zero values.
|
inlineoverridevirtualinherited |
|
overridevirtualinherited |
When using 'field = velocity_component', get the spatial value for a particular component
[in] | p | point |
[in] | component | component |
Implements NekSpatialBinUserObject.
|
finaloverridevirtualinherited |
|
inherited |
Get the individual bin indices given a total combined bin
[in] | total_bin_index | total combined bin index |
|
static |
|
protectedinherited |
Number of GLL points (for 'map_space_by_qp = true') or elements (for 'map_space_by_qp = false') that contribute to each bin, for error checking
|
protectedinherited |
Names of the userobjects providing the bins.
|
protectedinherited |
Partial-sum of bin count per Nek rank.
|
protectedinherited |
Partial-sum of bin value per Nek rank.
|
protectedinherited |
For each x, y, z direction, which bin provides that direction.
|
protectedinherited |
values of the userobject in each bin
|
protectedinherited |
temporary storage space to hold the results of component-wise evaluations
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
Volumes of each bin.
|
protectedinherited |
Userobjects providing the bins.
|
protectedinherited |
Whether to throw an error if no GLL points or elements map to each bin (which would indicate that the binning is probably way too fine relative to the NekRS solution)
|
protectedinherited |
field to postprocess with the bins
|
protectedinherited |
Whether the mesh this userobject operates on is fixed, allowing caching of volumes and areas.
|
protectedinherited |
For each x, y, z direction, whether the combined distribution covers that direction.
|
protectedinherited |
Interval with which to evaluate the user object.
|
protectedinherited |
Whether to map the NekRS space to bins by element centroid (false) or quadrature point (true).
|
protectedinherited |
total number of bins
|
protectedinherited |
Underlying problem object.
|
protectedinherited |
points at which to output the user object to give unique values
|
protectedinherited |
velocity direction to use for each bin
|
protectedinherited |
Direction in which to evaluate velocity, if using 'field = velocity_component'. Options: user (then provide a general vector direction with the 'velocity_direction' parameter normal (normal to the gap planes, only valid for side bin user objects)