https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
16namespace CSG
17{
18
23class CSGSphere : public CSGSurface
24{
25public:
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
64protected:
70 virtual std::unique_ptr<CSGSurface> clone() const override
71 {
72 return std::make_unique<CSGSphere>(_name, Point(_x0, _y0, _z0), _r);
73 }
74
75 // check that radius is positive
76 void checkRadius() const;
77
79 Real _x0;
80
82 Real _y0;
83
85 Real _z0;
86
88 Real _r;
89};
90} // namespace CSG
Point center
Definition MortarUtils.C:58
CSGSphere creates an internal representation of a Constructive Solid Geometry (CSG) sphere,...
Definition CSGSphere.h:24
Real _r
Value of r in equation of sphere.
Definition CSGSphere.h:88
Real _z0
Value of z0 in equation of sphere.
Definition CSGSphere.h:85
virtual ~CSGSphere()=default
Destructor.
void checkRadius() const
Definition CSGSphere.C:46
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:28
Real _x0
Value of x0 in equation of sphere.
Definition CSGSphere.h:79
virtual Real evaluateSurfaceEquationAtPoint(const Point &p) const override
given a point, determine its evaluation based on the equation of the sphere
Definition CSGSphere.C:35
virtual std::unique_ptr< CSGSurface > clone() const override
create clone of CSGSphere object
Definition CSGSphere.h:70
Real _y0
Value of y0 in equation of sphere.
Definition CSGSphere.h:82
CSGSurface creates an internal representation of a Constructive Solid Geometry (CSG) surface,...
Definition CSGSurface.h:27
std::string _name
Name of surface.
Definition CSGSurface.h:122