https://mooseframework.inl.gov
CSGSphere.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 "CSGSurface.h"
13 
14 #include "libmesh/point.h"
15 
16 namespace CSG
17 {
18 
23 class CSGSphere : public CSGSurface
24 {
25 public:
33  CSGSphere(const std::string & name, const Point & center, const Real r);
34 
41  CSGSphere(const std::string & name, const Real r);
42 
46  virtual ~CSGSphere() = default;
47 
54  virtual std::unordered_map<std::string, Real> getCoeffs() const override;
55 
62  virtual Real evaluateSurfaceEquationAtPoint(const Point & p) const override;
63 
64 protected:
65  // check that radius is positive
66  void checkRadius() const;
67 
70 
73 
76 
79 };
80 } // namespace CSG
std::string name(const ElemQuality q)
void checkRadius() const
Definition: CSGSphere.C:50
CSGSphere(const std::string &name, const Point &center, const Real r)
Construct a new CSGSphere surface.
Definition: CSGSphere.C:15
virtual std::unordered_map< std::string, Real > getCoeffs() const override
Get the coefficients (x0, y0, z0, r) for the equation of a sphere (x - x0)^2 + (y - y0)^2 + (z - z0)^...
Definition: CSGSphere.C:32
virtual Real evaluateSurfaceEquationAtPoint(const Point &p) const override
given a point, determine its evaluation based on the equation of the sphere
Definition: CSGSphere.C:39
Real _r
Value of r in equation of sphere.
Definition: CSGSphere.h:78
Real _z0
Value of z0 in equation of sphere.
Definition: CSGSphere.h:75
CSGSphere creates an internal representation of a Constructive Solid Geometry (CSG) sphere...
Definition: CSGSphere.h:23
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Real _x0
Value of x0 in equation of sphere.
Definition: CSGSphere.h:69
CSGSurface creates an internal representation of a Constructive Solid Geometry (CSG) surface...
Definition: CSGSurface.h:26
virtual ~CSGSphere()=default
Destructor.
Real _y0
Value of y0 in equation of sphere.
Definition: CSGSphere.h:72