GEOS
ThickPlane.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 
20 #ifndef GEOS_MESH_SIMPLEGEOMETRICOBJECTS_THICKPLANE_HPP_
21 #define GEOS_MESH_SIMPLEGEOMETRICOBJECTS_THICKPLANE_HPP_
22 
23 #include "SimpleGeometricObjectBase.hpp"
24 
25 namespace geos
26 {
27 
33 {
34 public:
35 
41  ThickPlane( const string & name,
42  Group * const parent );
43 
48 
53  static string catalogName() { return "ThickPlane"; }
54 
56 
57  bool isCoordInObject( real64 const ( &coord ) [3] ) const override final;
58 
63 
68  R1Tensor & getNormal() {return m_normal;}
69 
73  R1Tensor const & getNormal() const {return m_normal;}
74 
79  R1Tensor & getCenter() {return m_origin;}
80 
84  R1Tensor const & getCenter() const {return m_origin;}
85 
86 protected:
87 
92  virtual void postInputInitialization() override final;
93 
94 private:
95 
97  R1Tensor m_origin;
99  R1Tensor m_normal;
101  real64 m_thickness;
102 
104 
105  struct viewKeyStruct
106  {
107  static constexpr char const * originString() { return "origin"; }
108  static constexpr char const * normalString() { return "normal"; }
109  static constexpr char const * thicknessString() { return "thickness"; }
110  };
111 
113 
114 };
115 } /* namespace geos */
116 
117 #endif /* GEOS_MESH_SIMPLEGEOMETRICOBJECTS_THICKPLANE_HPP_*/
Base class for the geometric objects (box, plane, cylinder).
Class to represent a geometric thick plane in GEOSX.
Definition: ThickPlane.hpp:33
R1Tensor & getNormal()
Get the normal to the plane.
Definition: ThickPlane.hpp:68
virtual void postInputInitialization() override final
This function provides capability to post process input values prior to any other initialization oper...
R1Tensor const & getCenter() const
Get the origin of the plane.
Definition: ThickPlane.hpp:84
R1Tensor const & getNormal() const
Get the normal to the plane.
Definition: ThickPlane.hpp:73
R1Tensor & getCenter()
Get the origin of the plane.
Definition: ThickPlane.hpp:79
bool isCoordInObject(real64 const (&coord)[3]) const override final
Check if the input coordinates are in the object.
static string catalogName()
Get the catalog name.
Definition: ThickPlane.hpp:53
ThickPlane(const string &name, Group *const parent)
Constructor.
double real64
64-bit floating point type.
Definition: DataTypes.hpp:98
Structure to hold scoped key names.
Definition: Group.hpp:1444