737{
738 mooseAssert(context, "Missing RayTracingStudy context");
740
744 0,
745 0,
746 true,
748
749 dataLoad(stream, ray->_current_point, context);
750 dataLoad(stream, ray->_direction, context);
752 dataLoad(stream, current_elem_id, context);
753 ray->_current_elem = study->
meshBase().query_elem_ptr(current_elem_id);
754 dataLoad(stream, ray->_current_incoming_side, context);
755 dataLoad(stream, ray->_trajectory_changed, context);
756 dataLoad(stream, ray->_end_set, context);
757 dataLoad(stream, ray->_should_continue, context);
758 dataLoad(stream, ray->_processor_crossings, context);
759 dataLoad(stream, ray->_intersections, context);
760 dataLoad(stream, ray->_trajectory_changes, context);
761 dataLoad(stream, ray->_distance, context);
762 dataLoad(stream, ray->_max_distance, context);
763 dataLoad(stream, ray->_data, context);
764 dataLoad(stream, ray->_aux_data, context);
765
766 if (ray->hasTraced())
768 "Cannot not load a Ray that has already traced during generation or propagation; "
769 "reset the Ray first");
770}
unsigned long int RayID
Type for a Ray's ID.
Key that is used for restricting access to acquireRayInternal().
friend void dataLoad(std::istream &stream, std::shared_ptr< Ray > &ray, void *context)
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)