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";
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)
Boundary condition to apply a directional flux multiplied by the surface normal vector.
unsigned int _illumination
Illumination state (bitmask)
static InputParameters validParams()
const MooseArray< Point > & _normals
unsigned int illumination(const SideIDType &id) const
const Elem *const & _current_elem
virtual Real computeQpResidual() override
bool useDisplacedMesh() const
API to chek if the UO runs on the displaced mesh.
Given a radiation direction vector this user object computes the illumination state of each side QP o...
const SelfShadowSideUserObject *const _self_shadow
Self shadow illumination calculation user object.
std::pair< dof_id_type, unsigned int > SideIDType
registerMooseObject("HeatTransferApp", DirectionalFluxBC)
const unsigned int & _current_side
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
virtual Real computeQpResidual() override
DirectionalFluxBC(const InputParameters ¶meters)
void paramWarning(const std::string ¶m, Args... args) const
const RealVectorValue _direction
Flux direction and magnitude vector.
virtual void precalculateResidual() override