19 template <
typename UserObjectType>
34 virtual const std::vector<Point>
spatialPoints()
const override;
37 virtual void execute()
override;
42 using UserObjectType::_current_elem;
43 using UserObjectType::computeIntegral;
46 template <
typename UserObjectType>
55 template <
typename UserObjectType>
60 mooseError(
"Both block and boundary cannot be specified for a layered integral user object. If " 61 "you want to define the geometric bounds of the layers from a specified block set " 62 "layer_bounding_block instead.");
65 template <
typename UserObjectType>
69 UserObjectType::initialize();
73 template <
typename UserObjectType>
77 const auto integral_value = computeIntegral();
79 const auto layer = getLayer(_current_elem->vertex_average());
81 setLayerValue(layer, getLayerValue(layer) + integral_value);
84 template <
typename UserObjectType>
91 template <
typename UserObjectType>
95 UserObjectType::threadJoin(y);
99 template <
typename UserObjectType>
100 const std::vector<Point>
103 std::vector<Point> points;
105 for (
const auto & l : _layer_centers)
107 Point pt(0.0, 0.0, 0.0);
109 points.push_back(pt);
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
virtual void finalize() override
virtual Real spatialValue(const Point &p) const override
Given a Point return the integral value associated with the layer that point falls in...
static InputParameters validParams()
static InputParameters validParams()
virtual void threadJoin(const UserObject &y)
Base class for computing layered side integrals.
virtual Real integralValue(const Point &p) const
Given a Point return the integral value associated with the layer that point falls in...
virtual void initialize()
virtual void execute() override
LayeredIntegralBase(const InputParameters ¶meters)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
This base class computes volume integrals of a variable storing partial sums for the specified number...
Base class for creating a user object with the SpatialUserObject and Moose::Functor APIs...
virtual void threadJoin(const UserObject &y) override
virtual void initialize() override
virtual const std::vector< Point > spatialPoints() const override
Base class for user-specific data.
static InputParameters validParams()