https://mooseframework.inl.gov
Loading...
Searching...
No Matches
CSGYCylinder.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 "CSGYCylinder.h"
11
12namespace CSG
13{
14
15CSGYCylinder::CSGYCylinder(const std::string & name, const Real x0, const Real z0, const Real r)
16 : CSGSurface(name), _x0(x0), _z0(z0), _r(r)
17{
19}
20
21std::unordered_map<std::string, Real>
23{
24 std::unordered_map<std::string, Real> coeffs = {{"x0", _x0}, {"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(0) - _x0)) + 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 y-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
Real _x0
Value of x0 in equation of an y-axis aligned cylinder.
virtual std::unordered_map< std::string, Real > getCoeffs() const override
Get the coefficients (x0, z0, and r) that define the cylindrical surface with the equation: (x - x0)^...
Real _z0
Value of z0 in equation of an y-axis aligned cylinder.
CSGYCylinder(const std::string &name, const Real x0, const Real z0, const Real r)
Construct a cylinder surface aligned with the y axis.
void checkRadius() const
Real _r
Value of r in equation of an y-axis aligned cylinder.
virtual Real evaluateSurfaceEquationAtPoint(const Point &p) const override
given a point, determine its evaluation based on the equation of the cylinder