GEOS
Disc.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 Total, S.A
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 
20 #ifndef GEOS_MESH_SIMPLEGEOMETRICOBJECTS_DISC_HPP_
21 #define GEOS_MESH_SIMPLEGEOMETRICOBJECTS_DISC_HPP_
22 
24 
25 namespace geos
26 {
27 
33 {
34 public:
35 
40 
46  Disc( const string & name,
47  Group * const parent );
48 
52  virtual ~Disc() override;
53 
55 
60 
65  static string catalogName() { return "Disc"; }
66 
68 
69  bool isCoordInObject( real64 const ( &coord ) [3] ) const override final;
70 
75 
80  virtual R1Tensor & getCenter() override final {return m_center;}
81 
85  virtual R1Tensor const & getCenter() const override final {return m_center;}
86 
87 protected:
88 
93  virtual void postInputInitialization() override final;
94 
95 private:
96 
98  R1Tensor m_center;
100  real64 m_radius;
102  real64 m_tolerance;
103 
105 
106  struct viewKeyStruct
107  {
108  static constexpr char const * centerString() { return "center"; }
109  static constexpr char const * radiusString() { return "radius"; }
110  static constexpr char const * toleranceString() { return "tolerance"; }
111  };
112 
114 
115 };
116 } /* namespace geos */
117 
118 #endif /* GEOS_MESH_SIMPLEGEOMETRICOBJECTS_DISC_HPP_*/
Class to represent a geometric disc in GEOSX.
Definition: Disc.hpp:33
Disc(const string &name, Group *const parent)
Constructor.
static string catalogName()
Get the catalog name.
Definition: Disc.hpp:65
virtual ~Disc() override
Default destructor.
virtual void postInputInitialization() override final
This function provides the capability to post process input values prior to any other initialization ...
virtual R1Tensor & getCenter() override final
Get the center of the disc.
Definition: Disc.hpp:80
bool isCoordInObject(real64 const (&coord)[3]) const override final
Check if the input coordinates are in the object.
virtual R1Tensor const & getCenter() const override final
Get the center of the disc.
Definition: Disc.hpp:85
Abstract class to implement functions used by all bounded geometric objects in GEOSX,...
double real64
64-bit floating point type.
Definition: DataTypes.hpp:99
Structure to hold scoped key names.
Definition: Group.hpp:1442