21#include "GeneralUserObject.h"
62 virtual const unsigned int bin(
const Point & p)
const;
79 const std::vector<
unsigned int>
unrolledBin(const
unsigned int & total_bin_index) const;
87 Point
nekPoint(const
int & local_elem_id, const
int & local_node_id) const;
Definition NekFieldInterface.h:8
Definition NekSpatialBinUserObject.h:32
virtual Real spatialValue(const Point &p, const unsigned int &component) const =0
std::vector< bool > _has_direction
For each x, y, z direction, whether the combined distribution covers that direction.
Definition NekSpatialBinUserObject.h:135
virtual void executeUserObject()=0
int * _bin_counts
Definition NekSpatialBinUserObject.h:164
virtual const unsigned int num_bins() const
virtual Real spatialValue(const Point &p) const override final
virtual void execute() override
unsigned int _n_bins
total number of bins
Definition NekSpatialBinUserObject.h:141
static InputParameters validParams()
double * _bin_values
values of the userobject in each bin
Definition NekSpatialBinUserObject.h:150
virtual const std::vector< Point > spatialPoints() const override
Definition NekSpatialBinUserObject.h:66
std::vector< const SpatialBinUserObject * > _bins
Userobjects providing the bins.
Definition NekSpatialBinUserObject.h:132
virtual void finalize()
Definition NekSpatialBinUserObject.h:41
virtual void computeBinVolumes() final
Compute the volume of each bin and check for zero contributions.
virtual void initialize()
Definition NekSpatialBinUserObject.h:40
bool _fixed_mesh
Whether the mesh this userobject operates on is fixed, allowing caching of volumes and areas.
Definition NekSpatialBinUserObject.h:113
std::vector< Point > _points
points at which to output the user object to give unique values
Definition NekSpatialBinUserObject.h:144
virtual ~NekSpatialBinUserObject()
NekSpatialBinUserObject(const InputParameters ¶meters)
void resetPartialStorage()
Reset the scratch space storage to zero values.
double * _bin_volumes
Volumes of each bin.
Definition NekSpatialBinUserObject.h:158
virtual const unsigned int bin(const Point &p) const
const unsigned int & _interval
Interval with which to evaluate the user object.
Definition NekSpatialBinUserObject.h:110
Point nekPoint(const int &local_elem_id, const int &local_node_id) const
int * _bin_partial_counts
Partial-sum of bin count per Nek rank.
Definition NekSpatialBinUserObject.h:170
void computePoints3D()
Get the output points for three combined bins.
std::vector< unsigned int > _bin_providing_direction
For each x, y, z direction, which bin provides that direction.
Definition NekSpatialBinUserObject.h:138
const std::vector< UserObjectName > & _bin_names
Names of the userobjects providing the bins.
Definition NekSpatialBinUserObject.h:116
std::vector< Point > _velocity_bin_directions
velocity direction to use for each bin
Definition NekSpatialBinUserObject.h:147
double * _bin_values_z
Definition NekSpatialBinUserObject.h:155
virtual void getBinVolumes()=0
Get the volume of each bin, used for normalizing in derived classes.
void computePoints1D()
Get the output points for a single bin.
const std::vector< unsigned int > unrolledBin(const unsigned int &total_bin_index) const
const bool & _check_zero_contributions
Definition NekSpatialBinUserObject.h:129
const bool & _map_space_by_qp
Definition NekSpatialBinUserObject.h:122
void computePoints2D()
Get the output points for two combined bins.
double * _bin_partial_values
Partial-sum of bin value per Nek rank.
Definition NekSpatialBinUserObject.h:167
double * _bin_values_y
Definition NekSpatialBinUserObject.h:154
void fillCoordinates(const std::vector< unsigned int > &indices, Point &p) const
double * _bin_values_x
temporary storage space to hold the results of component-wise evaluations
Definition NekSpatialBinUserObject.h:153
Definition SpatialBinUserObject.h:27
Definition CardinalEnums.h:79