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 
40 
46  ThickPlane( const string & name,
47  Group * const parent );
48 
52  virtual ~ThickPlane() override;
53 
55 
60 
65  static string catalogName() { return "ThickPlane"; }
66 
68 
69  bool isCoordInObject( real64 const ( &coord ) [3] ) const override final;
70 
75 
80  R1Tensor & getNormal() {return m_normal;}
81 
85  R1Tensor const & getNormal() const {return m_normal;}
86 
91  R1Tensor & getCenter() {return m_origin;}
92 
96  R1Tensor const & getCenter() const {return m_origin;}
97 
98 protected:
99 
104  virtual void postInputInitialization() override final;
105 
106 private:
107 
109  R1Tensor m_origin;
111  R1Tensor m_normal;
113  real64 m_thickness;
114 
116 
117  struct viewKeyStruct
118  {
119  static constexpr char const * originString() { return "origin"; }
120  static constexpr char const * normalString() { return "normal"; }
121  static constexpr char const * thicknessString() { return "thickness"; }
122  };
123 
125 
126 };
127 } /* namespace geos */
128 
129 #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:80
virtual ~ThickPlane() override
Default destructor.
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:96
R1Tensor const & getNormal() const
Get the normal to the plane.
Definition: ThickPlane.hpp:85
R1Tensor & getCenter()
Get the origin of the plane.
Definition: ThickPlane.hpp:91
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:65
ThickPlane(const string &name, Group *const parent)
Constructor.
double real64
64-bit floating point type.
Definition: DataTypes.hpp:99
Structure to hold scoped key names.
Definition: Group.hpp:1442