GEOSX
Cylinder.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University
7  * Copyright (c) 2018-2020 TotalEnergies
8  * Copyright (c) 2019- GEOSX Contributors
9  * All rights reserved
10  *
11  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
12  * ------------------------------------------------------------------------------------------------------------
13  */
14 
20 #ifndef GEOS_MESH_SIMPLEGEOMETRICOBJECTS_CYLINDER_HPP_
21 #define GEOS_MESH_SIMPLEGEOMETRICOBJECTS_CYLINDER_HPP_
22 
23 #include "SimpleGeometricObjectBase.hpp"
24 
25 namespace geos
26 {
27 
33 {
34 public:
35 
40 
46  Cylinder( const string & name,
47  Group * const parent );
48 
52  virtual ~Cylinder() override;
53 
55 
60 
65  static string catalogName() { return "Cylinder"; }
66 
68 
69  bool isCoordInObject( real64 const ( &coord ) [3] ) const override final;
70 
72 
73  struct viewKeyStruct
74  {
75  static constexpr char const * point1String() { return "firstFaceCenter"; }
76  static constexpr char const * point2String() { return "secondFaceCenter"; }
77  static constexpr char const * radiusString() { return "outerRadius"; }
78  static constexpr char const * innerRadiusString() { return "innerRadius"; }
79  };
80 
82 
83 private:
84 
86  R1Tensor m_point1;
87 
89  R1Tensor m_point2;
90 
92  real64 m_radius = 0.0;
93 
95  real64 m_innerRadius = 0.0;
96 
97 };
98 } /* namespace geos */
99 
100 #endif /* GEOS_MESH_SIMPLEGEOMETRICOBJECTS_CYLINDER_HPP_
101  */
Class to represent a geometric cylinder in GEOSX.
Definition: Cylinder.hpp:33
virtual ~Cylinder() override
Default destructor.
Cylinder(const string &name, Group *const parent)
Constructor.
static string catalogName()
Get the catalog name.
Definition: Cylinder.hpp:65
bool isCoordInObject(real64 const (&coord)[3]) const override final
Check if the input coordinates are in the object.
Base class for the geometric objects (box, plane, cylinder).
double real64
64-bit floating point type.
Definition: DataTypes.hpp:139