20 "exposed portion of a sideset. Note that this cannot be used on the "
21 "centerline of an axisymmetric model.");
23 "SelfShadowSideUserObject that calculates the "
24 "illumination state of element sides in a side set");
34 "The SelfShadowSideUserObject should operate on the same mesh (displaced or "
35 "undisplaced) as this PostProcessor.");
44 if (illumination & (1 <<
_qp))
53 Real curr_exposed_side_volume = 0.0;
56 for (
const unsigned int qp : make_range(
_qrule->n_points()))
59 if (illumination & (1 << qp))
60 curr_exposed_side_volume +=
_JxW[qp] *
_coord[qp];
62 return curr_exposed_side_volume;
registerMooseObject("HeatTransferApp", ExposedSideAverageValue)
This postprocessor computes a volume integral of the specified variable on the exposed portion of a s...
const SelfShadowSideUserObject & _self_shadow
Reference to SelfShadowSideUserObject, which does the determination of which QPs are exposed.
ExposedSideAverageValue(const InputParameters ¶meters)
static InputParameters validParams()
virtual Real volume() override
Instead of computing the total face volume (as the base class does), compute the volume of the expose...
Real computeQpIntegral() override
void paramError(const std::string ¶m, Args... args) const
Given a radiation direction vector this user object computes the illumination state of each side QP o...
unsigned int illumination(const SideIDType &id) const
std::pair< dof_id_type, unsigned int > SideIDType
bool useDisplacedMesh() const
API to chek if the UO runs on the displaced mesh.
static InputParameters validParams()
Real computeQpIntegral() override
const unsigned int & _current_side
const MooseArray< Real > & _coord
const QBase *const & _qrule
const MooseArray< Real > & _JxW
const Elem *const & _current_elem