https://mooseframework.inl.gov
Loading...
Searching...
No Matches
CSGXCylinder.C
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#include "CSGXCylinder.h"
11
12namespace CSG
13{
14
15CSGXCylinder::CSGXCylinder(const std::string & name, const Real y0, const Real z0, const Real r)
16 : CSGSurface(name), _y0(y0), _z0(z0), _r(r)
17{
19}
20
21std::unordered_map<std::string, Real>
23{
24 std::unordered_map<std::string, Real> coeffs = {{"y0", _y0}, {"z0", _z0}, {"r", _r}};
25 return coeffs;
26}
27
28Real
30{
31 // Compute distance from the cylinder center to determine if inside (< r^2)
32 // or outside (> r^2) the cylinder
33 const Real dist_sq = Utility::pow<2>((p(1) - _y0)) + Utility::pow<2>((p(2) - _z0));
34
35 return dist_sq - Utility::pow<2>(_r);
36}
37
38void
40{
41 if (_r <= 0.0)
42 mooseError("Radius of x-cylinder must be positive.");
43}
44
45} // namespace CSG
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
Definition MooseError.h:311
CSGSurface creates an internal representation of a Constructive Solid Geometry (CSG) surface,...
Definition CSGSurface.h:27
virtual std::unordered_map< std::string, Real > getCoeffs() const override
Get the coefficients (y0, z0, and r) that define the cylindrical surface with the equation: (y - y0)^...
virtual Real evaluateSurfaceEquationAtPoint(const Point &p) const override
given a point, determine its evaluation based on the equation of the cylinder
Real _y0
Value of y0 in equation of an x-axis aligned cylinder.
void checkRadius() const
Real _z0
Value of z0 in equation of an x-axis aligned cylinder.
CSGXCylinder(const std::string &name, const Real y0, const Real z0, const Real r)
Construct a cylinder surface aligned with the x axis.
Real _r
Value of r in equation of an x-axis aligned cylinder.