GEOS
Cylinder.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2024 TotalEnergies
7  * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University
8  * Copyright (c) 2023-2024 Chevron
9  * Copyright (c) 2019- GEOS/GEOSX Contributors
10  * All rights reserved
11  *
12  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
13  * ------------------------------------------------------------------------------------------------------------
14  */
15 
21 #ifndef GEOS_MESH_SIMPLEGEOMETRICOBJECTS_CYLINDER_HPP_
22 #define GEOS_MESH_SIMPLEGEOMETRICOBJECTS_CYLINDER_HPP_
23 
24 #include "SimpleGeometricObjectBase.hpp"
25 
26 namespace geos
27 {
28 
34 {
35 public:
36 
42  Cylinder( const string & name,
43  Group * const parent );
44 
49 
54  static string catalogName() { return "Cylinder"; }
55 
57 
58  bool isCoordInObject( real64 const ( &coord ) [3] ) const override final;
59 
61 
62  struct viewKeyStruct
63  {
64  static constexpr char const * point1String() { return "firstFaceCenter"; }
65  static constexpr char const * point2String() { return "secondFaceCenter"; }
66  static constexpr char const * radiusString() { return "outerRadius"; }
67  static constexpr char const * innerRadiusString() { return "innerRadius"; }
68  };
69 
71 
72 private:
73 
75  R1Tensor m_point1;
76 
78  R1Tensor m_point2;
79 
81  real64 m_radius = 0.0;
82 
84  real64 m_innerRadius = 0.0;
85 
86 };
87 } /* namespace geos */
88 
89 #endif /* GEOS_MESH_SIMPLEGEOMETRICOBJECTS_CYLINDER_HPP_
90  */
Class to represent a geometric cylinder in GEOSX.
Definition: Cylinder.hpp:34
Cylinder(const string &name, Group *const parent)
Constructor.
static string catalogName()
Get the catalog name.
Definition: Cylinder.hpp:54
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:98
Structure to hold scoped key names.
Definition: Group.hpp:1444