https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Private Member Functions | Friends | List of all members
RayTracingStudy::AcquireRayInternalKey Class Reference

Key that is used for restricting access to acquireRayInternal(). More...

#include <RayTracingStudy.h>

Private Member Functions

 AcquireRayInternalKey ()
 
 AcquireRayInternalKey (const AcquireRayInternalKey &)
 

Friends

class Parallel::Packing< std::shared_ptr< Ray > >
 
void dataLoad (std::istream &stream, std::shared_ptr< Ray > &ray, void *context)
 

Detailed Description

Key that is used for restricting access to acquireRayInternal().

In general, we restrict access to the construction of Rays to only protected methods within RayTracingStudy. However, there are a few classes/functions that have a legimate reason to construct Rays. Here, the friends are said classes/functions.

Definition at line 53 of file RayTracingStudy.h.

Constructor & Destructor Documentation

◆ AcquireRayInternalKey() [1/2]

RayTracingStudy::AcquireRayInternalKey::AcquireRayInternalKey ( )
inlineprivate

Definition at line 57 of file RayTracingStudy.h.

57{}

◆ AcquireRayInternalKey() [2/2]

RayTracingStudy::AcquireRayInternalKey::AcquireRayInternalKey ( const AcquireRayInternalKey )
inlineprivate

Definition at line 58 of file RayTracingStudy.h.

58{}

Friends And Related Symbol Documentation

◆ dataLoad

void dataLoad ( std::istream &  stream,
std::shared_ptr< Ray > &  ray,
void *  context 
)
friend

Definition at line 738 of file Ray.C.

739{
740 mooseAssert(context, "Missing RayTracingStudy context");
741 RayTracingStudy * study = static_cast<RayTracingStudy *>(context);
742
743 RayID id;
744 loadHelper(stream, id, context);
745 ray = study->acquireRayInternal(id,
746 /* data_size = */ 0,
747 /* aux_data_size = */ 0,
748 /* reset = */ true,
750
751 loadHelper(stream, ray->_current_point, context);
752 loadHelper(stream, ray->_direction, context);
753 dof_id_type current_elem_id;
754 loadHelper(stream, current_elem_id, context);
755 ray->_current_elem = study->meshBase().query_elem_ptr(current_elem_id);
756 loadHelper(stream, ray->_current_incoming_side, context);
757 loadHelper(stream, ray->_trajectory_changed, context);
758 loadHelper(stream, ray->_end_set, context);
759 loadHelper(stream, ray->_should_continue, context);
760 loadHelper(stream, ray->_processor_crossings, context);
761 loadHelper(stream, ray->_intersections, context);
762 loadHelper(stream, ray->_trajectory_changes, context);
763 loadHelper(stream, ray->_distance, context);
764 loadHelper(stream, ray->_max_distance, context);
765 loadHelper(stream, ray->_data, context);
766 loadHelper(stream, ray->_aux_data, context);
767
768 if (ray->hasTraced())
769 mooseAssert(!study->currentlyGenerating() && !study->currentlyPropagating(),
770 "Cannot not load a Ray that has already traced during generation or propagation; "
771 "reset the Ray first");
772}
void loadHelper(std::istream &stream, P &data, void *context)
unsigned long int RayID
Type for a Ray's ID.
Definition Ray.h:44
Key that is used for restricting access to acquireRayInternal().
Base class for Ray tracing studies that will generate Rays and then propagate all of them to terminat...
MeshBase & meshBase() const
Access to the libMesh MeshBase.
bool currentlyGenerating() const
Whether or not the study is generating.
std::shared_ptr< Ray > acquireRayInternal(const RayID id, const std::size_t data_size, const std::size_t aux_data_size, const bool reset, const AcquireRayInternalKey &)
bool currentlyPropagating() const
Whether or not the study is propagating (tracing Rays)
virtual const Elem * query_elem_ptr(const dof_id_type i) const=0
uint8_t dof_id_type

◆ Parallel::Packing< std::shared_ptr< Ray > >

friend class Parallel::Packing< std::shared_ptr< Ray > >
friend

Definition at line 1145 of file RayTracingStudy.h.


The documentation for this class was generated from the following file: