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 Total, S.A
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 GEOSX_MESHUTILITIES_SIMPLEGEOMETRICOBJECTS_THICKPLANE_HPP_
20 #define GEOSX_MESHUTILITIES_SIMPLEGEOMETRICOBJECTS_THICKPLANE_HPP_
21 
22 #include "SimpleGeometricObjectBase.hpp"
23 
24 namespace geosx
25 {
26 
32 {
33 public:
34 
38 
45  ThickPlane( const std::string & name,
46  Group * const parent );
47 
51  virtual ~ThickPlane() override;
52 
54 
58 
64  static string CatalogName() { return "ThickPlane"; }
65 
67 
68  bool IsCoordInObject( real64 const ( &coord ) [3] ) const override final;
69 
73 
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 auto originString = "origin";
119  static constexpr auto normalString = "normal";
120  static constexpr auto thicknessString = "thickness";
121  };
122 
124 
125 };
126 } /* namespace geosx */
127 
128 #endif /* GEOSX_MESHUTILITIES_SIMPLEGEOMETRICOBJECTS_THICKPLANE_HPP_
129  */
R1Tensor const & getCenter() const
Get the origin of the plane.
Definition: ThickPlane.hpp:95
double real64
64-bit floating point type.
Definition: DataTypes.hpp:136
R1Tensor & getNormal()
Get the normal to the plane.
Definition: ThickPlane.hpp:79
Base class for the geometric objects (box, plane, cylinder).
ThickPlane(const std::string &name, Group *const parent)
Constructor.
R1Tensor const & getNormal() const
Get the normal to the plane.
Definition: ThickPlane.hpp:84
bool IsCoordInObject(real64 const (&coord) [3]) const override final
Check if the input coordinates are in the object.
R1Tensor & getCenter()
Get the origin of the plane.
Definition: ThickPlane.hpp:90
virtual void PostProcessInput() override final
This function provides capability to post process input values prior to any other initialization oper...
Class to represent a geometric thick plane in GEOSX.
Definition: ThickPlane.hpp:31
virtual ~ThickPlane() override
Default destructor.
std::string string
String type.
Definition: DataTypes.hpp:131
static string CatalogName()
Get the catalog name.
Definition: ThickPlane.hpp:64