https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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{
29public:
32
34
55 virtual void onBoundary(const unsigned int num_applying) = 0;
56
57protected:
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};
boundary_id_type BoundaryID
Base class for the RayBC syntax.
std::shared_ptr< Ray > acquireRay(const Point &direction)
Acquires a Ray to be used for generating a new Ray while tracing on the boundary.
void changeRayDirection(const Point &direction, const bool skip_changed_check=false)
Changes the current Ray's direction.
virtual void onBoundary(const unsigned int num_applying)=0
Called on a Ray on the boundary to apply the Ray boundary condition.
static InputParameters validParams()
const Point & _current_intersection_point
The current intersection point on the boundary.
const BoundaryID & _current_bnd_id
The ID of the current intersected boundary.
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 a MooseObject used in ray tracing.