https://mooseframework.inl.gov
RayBoundaryConditionBase.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 // Local Includes
13 #include "RayTracingObject.h"
14 #include "Ray.h"
15 
16 // MOOSE Includes
17 #include "Restartable.h"
19 
26  public Restartable,
28 {
29 public:
31  virtual ~RayBoundaryConditionBase();
32 
34 
55  virtual void onBoundary(const unsigned int num_applying) = 0;
56 
57 protected:
67  void changeRayDirection(const Point & direction, const bool skip_changed_check = false);
68 
80  std::shared_ptr<Ray> acquireRay(const Point & direction);
81 
86  void moveRayToBuffer(std::shared_ptr<Ray> & ray);
87 
92 };
static InputParameters validParams()
std::shared_ptr< Ray > acquireRay(const Point &direction)
Acquires a Ray to be used for generating a new Ray while tracing on the boundary. ...
const Point & _current_intersection_point
The current intersection point on the boundary.
Base class for a MooseObject used in ray tracing.
RayBoundaryConditionBase(const InputParameters &params)
boundary_id_type BoundaryID
void changeRayDirection(const Point &direction, const bool skip_changed_check=false)
Changes the current Ray&#39;s direction.
void moveRayToBuffer(std::shared_ptr< Ray > &ray)
Moves a Ray into the working buffer to be traced during tracing with a meaningful error on verificati...
Base class for the RayBC syntax.
virtual void onBoundary(const unsigned int num_applying)=0
Called on a Ray on the boundary to apply the Ray boundary condition.
const BoundaryID & _current_bnd_id
The ID of the current intersected boundary.