GEOSX
BoundedPlane.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 SRC_COMPONENTS_CORE_SRC_MESHUTILITIES_SIMPLEGEOMETRICOBJECTS_BOUNDEDPLANE_HPP_
20 #define SRC_COMPONENTS_CORE_SRC_MESHUTILITIES_SIMPLEGEOMETRICOBJECTS_BOUNDEDPLANE_HPP_
21 
22 #include "SimpleGeometricObjectBase.hpp"
23 
24 namespace geosx
25 {
26 
32 {
33 public:
34 
38 
45  BoundedPlane( const std::string & name,
46  Group * const parent );
47 
51  virtual ~BoundedPlane() override;
52 
54 
58 
64  static string CatalogName() { return "BoundedPlane"; }
65 
67 
68  bool IsCoordInObject( real64 const ( &coord ) [3] ) const override final;
69 
73  void findRectangleLimits();
74 
78 
84  R1Tensor & getNormal() {return m_normal;}
85 
89  R1Tensor const & getNormal() const {return m_normal;}
90 
95  R1Tensor & getCenter() {return m_origin;}
96 
100  R1Tensor const & getCenter() const {return m_origin;}
101 
106  R1Tensor & getWidthVector() {return m_widthVector;}
107 
111  R1Tensor const & getWidthVector() const {return m_widthVector;}
112 
117  R1Tensor & getLengthVector() {return m_lengthVector;}
118 
122  R1Tensor const & getLengthVector() const {return m_lengthVector;}
123 
124 
125 protected:
126 
131  virtual void PostProcessInput() override final;
132 
133 private:
134 
136  R1Tensor m_origin;
138  R1Tensor m_normal;
140  R1Tensor m_lengthVector;
142  R1Tensor m_widthVector;
144  array1d< real64 > m_dimensions;
146  array2d< real64 > m_points;
147 
149 
150  struct viewKeyStruct
151  {
152  static constexpr auto originString = "origin";
153  static constexpr auto normalString = "normal";
154  static constexpr auto dimensionsString = "dimensions";
155  static constexpr auto mLengthVectorString = "lengthVector";
156  static constexpr auto mWidthVectorString = "widthVector";
157  };
158 
160 
161 };
162 } /* namespace geosx */
163 
164 #endif /* SRC_COMPONENTS_CORE_SRC_MESHUTILITIES_SIMPLEGEOMETRICOBJECTS_BOUNDEDPLANE_HPP_
165  */
void findRectangleLimits()
Find the bounds of the plane.
R1Tensor const & getLengthVector() const
Get one of the tangent vectors defining the orthonormal basis along with the normal.
R1Tensor const & getCenter() const
Get the origin of the plane.
R1Tensor const & getNormal() const
Get the normal to the plane.
Class to represent a geometric box in GEOSX.
BoundedPlane(const std::string &name, Group *const parent)
Constructor.
R1Tensor & getCenter()
Get the origin of the plane.
double real64
64-bit floating point type.
Definition: DataTypes.hpp:136
virtual ~BoundedPlane() override
Default destructor.
Base class for the geometric objects (box, plane, cylinder).
R1Tensor const & getWidthVector() const
Get one of the tangent vectors defining the orthonormal basis along with the normal.
virtual void PostProcessInput() override final
This function provides the capability to post process input values prior to any other initialization ...
static string CatalogName()
Get the catalog name.
R1Tensor & getNormal()
Get the normal to the plane.
bool IsCoordInObject(real64 const (&coord) [3]) const override final
Check if the input coordinates are in the object.
R1Tensor & getLengthVector()
Get one of the tangent vectors defining the orthonormal basis along with the normal.
std::string string
String type.
Definition: DataTypes.hpp:131
R1Tensor & getWidthVector()
Get one of the tangent vectors defining the orthonormal basis along with the normal.
This class provides a fixed dimensional resizeable array interface in addition to an interface simila...
Definition: Array.hpp:55