14 #include "libmesh/data_type.h" 31 virtual void execute()
override;
43 using Triangle = std::tuple<Point, Point, Point, SideIDType>;
66 std::vector<std::pair<SideIDType, MooseArray<Point>>>
_local_qps;
static InputParameters validParams()
std::vector< const PostprocessorValue * > _raw_direction
raw illumination vector data (direction the radiation is propagating in)
unsigned int illumination(const SideIDType &id) const
bool check2DIllumination(const Point &qp, const SideIDType &id)
bool useDisplacedMesh() const
API to chek if the UO runs on the displaced mesh.
std::tuple< Point, Point, Point, SideIDType > Triangle
const std::vector< double > y
std::map< SideIDType, unsigned int > & _illumination_status
illumination status data (partition local), we use a bit for each QP
Given a radiation direction vector this user object computes the illumination state of each side QP o...
virtual void threadJoin(const UserObject &y) override
only needed for ElementUserObjects and NodalUseroObjects
TensorValue< Real > RealTensorValue
virtual void initialize() override
std::vector< Triangle > _triangles
global triange data (3D)
void addLines(const SideIDType &id)
RealTensorValue _rotation
matrix that rotates the direction onto the z-axis
virtual void finalize() override
std::pair< dof_id_type, unsigned int > SideIDType
bool check3DIllumination(const Point &qp, const SideIDType &id)
std::vector< LineSegment > _lines
global line segment data (2D)
SelfShadowSideUserObject(const InputParameters ¶meters)
const InputParameters & parameters() const
const unsigned int _dim
problem dimension
std::vector< std::pair< SideIDType, MooseArray< Point > > > _local_qps
local QP data
void rotate(MooseArray< Point > &points)
rotate all points in the given container
void addTriangles(const SideIDType &id)
virtual void execute() override