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;
59 if (illumination & (1 << qp))
60 curr_exposed_side_volume +=
_JxW[qp] *
_coord[qp];
62 return curr_exposed_side_volume;
const unsigned int & _current_side
unsigned int illumination(const SideIDType &id) const
bool useDisplacedMesh() const
API to chek if the UO runs on the displaced mesh.
const SelfShadowSideUserObject & _self_shadow
Reference to SelfShadowSideUserObject, which does the determination of which QPs are exposed...
Real computeQpIntegral() override
Given a radiation direction vector this user object computes the illumination state of each side QP o...
This postprocessor computes a volume integral of the specified variable on the exposed portion of a s...
const MooseArray< Real > & _JxW
void paramError(const std::string ¶m, Args... args) const
Real computeQpIntegral() override
const MooseArray< Real > & _coord
std::pair< dof_id_type, unsigned int > SideIDType
static InputParameters validParams()
registerMooseObject("HeatTransferApp", ExposedSideAverageValue)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Real volume() override
Instead of computing the total face volume (as the base class does), compute the volume of the expose...
const QBase *const & _qrule
IntRange< T > make_range(T beg, T end)
const Elem *const & _current_elem
static InputParameters validParams()
ExposedSideAverageValue(const InputParameters ¶meters)