15 CSGPlane::CSGPlane(
const std::string & name,
const Point & p1,
const Point & p2,
const Point & p3)
21 CSGPlane::CSGPlane(
const std::string & name,
const Real a,
const Real b,
const Real c,
const Real d)
26 std::unordered_map<std::string, Real>
29 std::unordered_map<std::string, Real> coeffs = {{
"a",
_a}, {
"b",
_b}, {
"c",
_c}, {
"d",
_d}};
44 mooseError(
"Provided points to define a CSGPlane are collinear");
57 const Real dot_prod =
_a * p(0) +
_b * p(1) +
_c * p(2);
virtual Real evaluateSurfaceEquationAtPoint(const Point &p) const override
given a point, determine its evaluation based on the equation of the plane
std::string name(const ElemQuality q)
auto norm() const -> decltype(std::norm(Real()))
bool absoluteFuzzyEqual(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
Function to check whether two variables are equal within an absolute tolerance.
Real _a
Value of a in equation of plane.
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
CSGPlane creates an internal representation of a Constructive Solid Geometry (CSG) plane...
CSGPlane(const std::string &name, const Point &p1, const Point &p2, const Point &p3)
Construct a new CSGPlane surface from three non co-linear points.
TypeVector< typename CompareTypes< Real, T2 >::supertype > cross(const TypeVector< T2 > &v) const
Real _b
Value of b in equation of plane.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Real _d
Value of d in equation of plane.
CSGSurface creates an internal representation of a Constructive Solid Geometry (CSG) surface...
Real _c
Value of c in equation of plane.
void coeffsFromPoints(const Point &p1, const Point &p2, const Point &p3)
virtual std::unordered_map< std::string, Real > getCoeffs() const override
get coefficients (a, b, c, d) of the Plane aX + bY + cZ = d
std::string prettyCppType(const std::string &cpp_type)