38 const Elem * start_elem,
39 const unsigned short int incoming_side,
41 const std::vector<Point> & points,
42 const std::vector<Real> & weights)
50 mooseAssert(
_points.size() ==
_weights.size(),
"Point and weight size not equal");
118 const std::unique_ptr<libMesh::QBase>
_q_face;
125 std::vector<std::unordered_map<BoundaryID, std::unordered_map<BoundaryID, Real>>>
128 std::map<BoundaryID, std::map<BoundaryID, Real>>
_vf_info;
136 std::unique_ptr<RayTracingAngularQuadrature>
_3d_aq;
151 static unsigned int packing_size(
const std::size_t num_points);
153 static unsigned int packed_size(
typename std::vector<Real>::const_iterator in);
157 template <
typename Iter,
typename Context>
160 template <
typename BufferIter,
typename Context>
boundary_id_type BoundaryID
unsigned int RayDataIndex
Type for the index into the data and aux data on a Ray.
const InputParameters & parameters() const
Base class for Ray tracing studies that will generate Rays and then propagate all of them to terminat...
RayTracingStudy used to generate Rays for view factor computation using the angular quadrature method...
void addToViewFactorInfo(Real value, const BoundaryID from_id, const BoundaryID to_id, const THREAD_ID tid)
Adds into the view factor info; to be used in ViewFactorRayBC.
std::map< BoundaryID, std::map< BoundaryID, Real > > _vf_info
Cumulative view factor information; [from_bid][to_bid] = val.
const std::set< BoundaryID > _bnd_ids
The user supplied boundary IDs we need view factors on.
void initialSetup() override
RayDataIndex rayIndexStartBndID() const
Get the index in the Ray aux data for the starting boundary ID.
const RayDataIndex _ray_index_start_bnd_id
Index in the Ray aux data for the starting boundary ID.
std::vector< StartElem > _start_elems
The StartElem objects that this proc needs to spawn Rays from.
const std::vector< BoundaryID > _bnd_ids_vec
The vector of user supplied boundary IDs we need view factors on.
static InputParameters validParams()
Real viewFactorInfo(const BoundaryID from_id, const BoundaryID to_id) const
Accessor for the finalized view factor info.
void generateStartElems()
std::unique_ptr< RayTracingAngularQuadrature > _3d_aq
const std::unique_ptr< libMesh::FEBase > _fe_face
Face FE used for creating face quadrature points and weights.
void generateRays() override
Subclasses should override this to determine how to generate Rays.
const std::unique_ptr< libMesh::QBase > _q_face
Face quadrature used for _fe_face.
void postExecuteStudy() override
Entry point after study execution.
void preExecuteStudy() override
Entry point before study execution.
std::vector< Real > _2d_aq_angles
angular quadrature info
const MooseEnum _internal_convention
The convention for spawning rays from internal sidesets.
std::vector< Real > _2d_aq_weights
const RayDataIndex _ray_index_start_total_weight
Index in the Ray aux data for the starting total weight (dot * qp weight)
std::vector< std::unordered_map< BoundaryID, std::unordered_map< BoundaryID, Real > > > _threaded_vf_info
View factor information by tid and then from/to pair; [tid][from_bid][to_bid] = val.
RayDataIndex rayIndexStartTotalWeight() const
Get the index in the Ray aux data for the starting total weight (dot * qp weight)
static ViewFactorRayStudy::StartElem unpack(BufferIter in, Context *)
static void pack(const ViewFactorRayStudy::StartElem &object, Iter data_out, const Context *)
static unsigned int packed_size(BufferIter iter)
unsigned int packable_size(const std::pair< T1, T2 > &pr, const Context *ctx)
The following methods are specializations for using the Parallel::packed_range_* routines for a vecto...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Data structure used for storing all of the information needed to spawn Rays from a single element.
const Elem * _start_elem
The element the trace will start from.
std::vector< Point > _points
The points on start_elem to spawn Rays from.
const Elem * _elem
The element the points originate from.
unsigned short int _incoming_side
The incoming side on start_elem that the trace will start from.
std::vector< Real > _weights
The weights associated with each point.
BoundaryID _bnd_id
The boundary ID associated with this start elem.
StartElem(const Elem *elem, const Elem *start_elem, const unsigned short int incoming_side, const BoundaryID bnd_id, const std::vector< Point > &points, const std::vector< Real > &weights)