Cardinal
|
#include <NekBinnedPlaneIntegral.h>
Public Member Functions | |
NekBinnedPlaneIntegral (const InputParameters ¶meters) | |
virtual void | executeUserObject () override |
virtual void | getBinVolumes () override |
Get the volume of each bin, used for normalizing in derived classes. More... | |
Real | spatialValue (const Point &p, const unsigned int &component) const override |
virtual void | binnedPlaneIntegral (const field::NekFieldEnum &integrand, double *total_integral) |
virtual void | computeIntegral () |
virtual Real | distanceFromGap (const Point &point, const unsigned int &gap_index) const |
virtual unsigned int | gapIndex (const Point &point) const |
virtual void | gapIndexAndDistance (const Point &point, unsigned int &index, Real &distance) const |
virtual Real | spatialValue (const Point &p) const override final |
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 Real & | _gap_thickness |
Width of region enclosing gap for which points contribute to gap integral. More... | |
const PlaneSpatialBinUserObject * | _side_bin |
The user object providing the side binning. More... | |
unsigned int | _side_index |
The index into the _bins that represents the side bin object. More... | |
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 side integral of the NekRS solution in spatial bins.
NekBinnedPlaneIntegral::NekBinnedPlaneIntegral | ( | const InputParameters & | parameters | ) |
|
virtualinherited |
|
virtual |
Compute the integral over the side bins
[in] | integrand | field to integrate |
[out] | total_integral | integral over each bin |
|
finalvirtualinherited |
Compute the volume of each bin and check for zero contributions.
|
virtual |
Compute the integrals
|
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.
|
virtualinherited |
|
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
Implements NekUserObject.
Reimplemented in NekBinnedPlaneAverage.
|
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 |
|
virtualinherited |
|
virtualinherited |
|
overridevirtual |
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 |
|
overridevirtual |
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 |
Width of region enclosing gap for which points contribute to gap integral.
|
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 |
The user object providing the side binning.
|
protectedinherited |
The index into the _bins that represents the side bin object.
|
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)