GEOSX
ThickPlane.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 
19 #ifndef GEOS_MESH_SIMPLEGEOMETRICOBJECTS_THICKPLANE_HPP_
20 #define GEOS_MESH_SIMPLEGEOMETRICOBJECTS_THICKPLANE_HPP_
21 
22 #include "SimpleGeometricObjectBase.hpp"
23 
24 namespace geos
25 {
26 
32 {
33 public:
34 
39 
45  ThickPlane( const string & name,
46  Group * const parent );
47 
51  virtual ~ThickPlane() override;
52 
54 
59 
64  static string catalogName() { return "ThickPlane"; }
65 
67 
68  bool isCoordInObject( real64 const ( &coord ) [3] ) const override final;
69 
74 
79  R1Tensor & getNormal() {return m_normal;}
80 
84  R1Tensor const & getNormal() const {return m_normal;}
85 
90  R1Tensor & getCenter() {return m_origin;}
91 
95  R1Tensor const & getCenter() const {return m_origin;}
96 
97 protected:
98 
103  virtual void postProcessInput() override final;
104 
105 private:
106 
108  R1Tensor m_origin;
110  R1Tensor m_normal;
112  real64 m_thickness;
113 
115 
116  struct viewKeyStruct
117  {
118  static constexpr char const * originString() { return "origin"; }
119  static constexpr char const * normalString() { return "normal"; }
120  static constexpr char const * thicknessString() { return "thickness"; }
121  };
122 
124 
125 };
126 } /* namespace geos */
127 
128 #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:32
R1Tensor & getNormal()
Get the normal to the plane.
Definition: ThickPlane.hpp:79
virtual ~ThickPlane() override
Default destructor.
virtual void postProcessInput() 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:95
R1Tensor const & getNormal() const
Get the normal to the plane.
Definition: ThickPlane.hpp:84
R1Tensor & getCenter()
Get the origin of the plane.
Definition: ThickPlane.hpp:90
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:64
ThickPlane(const string &name, Group *const parent)
Constructor.
double real64
64-bit floating point type.
Definition: DataTypes.hpp:139