20 "Applies a directional flux multiplied by the surface normal vector. "
21 "Can utilize the self shadowing calculation from a SelfShadowSideUserObject.");
23 "Radiation direction and magnitude vector");
26 "SelfShadowSideUserObject that calculates the illumination state of a side set");
27 params.
set<FunctionName>(
"function") =
"1";
33 _direction(getParam<RealVectorValue>(
"illumination_flux")),
34 _self_shadow(isParamValid(
"self_shadow_uo")
40 "The SelfShadowSideUserObject should operate on the same mesh (displaced or "
41 "undisplaced) as this BC.");
61 if (projected_flux > 0)
registerMooseObject("HeatTransferApp", DirectionalFluxBC)
Boundary condition to apply a directional flux multiplied by the surface normal vector.
static InputParameters validParams()
DirectionalFluxBC(const InputParameters ¶meters)
virtual Real computeQpResidual() override
unsigned int _illumination
Illumination state (bitmask)
const SelfShadowSideUserObject *const _self_shadow
Self shadow illumination calculation user object.
const RealVectorValue _direction
Flux direction and magnitude vector.
virtual void precalculateResidual() override
static InputParameters validParams()
virtual Real computeQpResidual() override
const unsigned int & _current_side
const Elem *const & _current_elem
const MooseArray< Point > & _normals
void paramWarning(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.