https://mooseframework.inl.gov
Loading...
Searching...
No Matches
SBMBndElementBase.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#include "MooseMesh.h"
13
14class Ball;
15class LineSegment;
16
19{
20public:
26 SBMBndElementBase(const Elem * elem, const Point & normal);
27
29 virtual ~SBMBndElementBase() = default;
30
32 const Elem & elem() const { return *_elem; }
33
35 const Point & normal() const { return _normal; }
36
41 bool intersect(const LineSegment & line_segment) const;
42
46 unsigned int expectedEmbeddingMeshDim() const { return _elem->dim() + 1; }
47
54 virtual Point distanceFrom(const Point & pt) const;
55
61
75 Real getProjectedBoundingBoxDiagonal(const Point & normal_dir) const;
76
77private:
80 const Elem * _elem;
83 const Point _normal;
84};
Base class for SBM boundary elements.
Ball computeBoundingBall() const
Compute a bounding ball for this boundary element.
unsigned int expectedEmbeddingMeshDim() const
Getter of expected embedding solving mesh dimension Because the boundary element is a face of the emb...
Real getProjectedBoundingBoxDiagonal(const Point &normal_dir) const
Compute the length of the element bounding-box diagonal projected onto a plane orthogonal to a given ...
virtual Point distanceFrom(const Point &pt) const
Compute the distance vector from an arbitrary point to this boundary element.
const Point & normal() const
Getter for the normal vector.
const Elem * _elem
< Pointer to the libMesh element representing this boundary face.
virtual ~SBMBndElementBase()=default
Virtual destructor to ensure proper cleanup in derived classes.
const Elem & elem() const
Getter for the underlying element.
bool intersect(const LineSegment &line_segment) const
Check if the given line segment intersects this boundary element.