135 template <
typename T>
139 static_assert(std::is_base_of<RayTracingStudy, T>::value,
"Not derived from a RayTracingStudy");
141 if (T * cast_study = dynamic_cast<T *>(&
_study))
144 std::stringstream
err;
145 err <<
"Supplied study of type " <<
_study.
type() <<
" is not the required study type " 146 << MooseUtils::prettyCppType<T>();
153 #define usingRayTracingObjectMembers \ 154 usingMooseObjectMembers; \ 155 usingFunctionInterfaceMembers; \ 156 usingPostprocessorInterfaceMembers; \ 157 usingTransientInterfaceMembers; \ 158 using RayTracingObject::currentRay
const unsigned short & _current_intersected_side
The side that _current_ray intersects (if any)
Base class for a MooseObject used in ray tracing.
std::set< std::string > _supplied_names
The names of the supplied objects: just this one.
FEProblemBase & _fe_problem
The FEProblemBase.
Helper for defining if at an element's edge, vertex, or neither.
const std::shared_ptr< Ray > & currentRay() const
Gets the current Ray that this is working on.
const std::set< std::string > & getRequestedItems() override
T & getStudy()
Casts the RayTracingStudy associated with this object to a study of type T with a meaningful error me...
virtual const std::string & name() const
std::set< std::string > _depend_names
The names of the objects this depends on.
bool isParamValid(const std::string &name) const
MooseMesh & _mesh
The MooseMesh.
virtual void postExecuteStudy()
Insertion point called immediately after executing the RayTracingStudy.
const Elem *const & _current_elem
The current Elem that _current_ray is tracing through.
static InputParameters validParams()
RayTracingObject(const InputParameters ¶ms)
const std::string & type() const
const THREAD_ID _tid
The thread id.
const RayTracingStudy & study() const
The RayTracingStudy associated with this object.
void paramError(const std::string ¶m, Args... args) const
RayTracingStudy & study()
The RayTracingStudy associated with this object.
NonlinearSystemBase * _nl
The nonlinear system, we might not have one.
const TraceRay & _trace_ray
The TraceRay object associated with this thread.
NonlinearSystemBase * getNonlinearSystem()
Get the right nonlinear system.
void dependsOn(const std::string name)
Add an object of this classes base type that this class depends on.
AuxiliarySystem & _aux
The aux system.
void mooseError(Args &&... args) const
const ElemExtrema & _current_intersected_extrema
The elem extrema (vertex/edge) that _current_ray intersects (if any)
virtual void preExecuteStudy()
Insertion point called immediately before executing the RayTracingStudy.
const SubdomainID & _current_subdomain_id
The subdomain ID of the _current_elem that the ray is tracing through.
RayTracingStudy & _study
The RayTracingStudy associated with this object.
const std::set< std::string > & getSuppliedItems() override
const std::shared_ptr< Ray > *const & _current_ray
The current Ray that the action is being applied to.
Traces Rays through the mesh on a single processor.
Base class for Ray tracing studies that will generate Rays and then propagate all of them to terminat...