GEOSX
SurfaceElementRegion.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 
20 #ifndef GEOSX_MESH_SURFACEELEMENTREGION_HPP_
21 #define GEOSX_MESH_SURFACEELEMENTREGION_HPP_
22 
23 #include "ElementRegionBase.hpp"
24 #include "common/EnumStrings.hpp"
25 
26 namespace geosx
27 {
28 
29 
30 class EdgeManager;
31 
40 {
41 public:
42 
49  {
50  faceElement,
51  embeddedElement
52  };
53 
57 
64  SurfaceElementRegion( string const & name, Group * const parent );
65 
69  SurfaceElementRegion() = delete;
70 
74  virtual ~SurfaceElementRegion() override;
75 
77 
81 
87  static const string CatalogName()
88  { return "SurfaceElementRegion"; }
89 
90  virtual const string getCatalogName() const override final
92 
94 
95 
99 
101  virtual void GenerateMesh( Group * ) override;
102 
113  localIndex AddToFractureMesh( real64 const time_np1,
114  EdgeManager * const edgeManager,
115  FaceManager const * const faceManager,
116  ArrayOfArraysView< localIndex const > const & originalFaceToEdges,
117  string const & subRegionName,
118  localIndex const faceIndices[2] );
119 
121 
122 
126 
132  real64 getDefaultAperture() const { return m_defaultAperture; }
133 
138  SurfaceSubRegionType subRegionType() const { return m_subRegionType; }
139 
140 
142 
148  {
150  static constexpr auto subRegionTypeString = "subRegionType";
151 
153  static constexpr auto fractureSetString = "fractureSet";
155  static constexpr auto defaultApertureString = "defaultAperture";
157  static constexpr auto ruptureTimeString = "ruptureTime";
158  };
159 
160 protected:
161  virtual void InitializePreSubGroups( Group * const ) override;
162 
163 private:
164 
165  SurfaceSubRegionType m_subRegionType;
166 
167  real64 m_defaultAperture;
168 
169 };
170 
171 ENUM_STRINGS( SurfaceElementRegion::SurfaceSubRegionType, "faceElement", "embeddedElement" )
172 
173 } /* namespace geosx */
174 
175 #endif /* CORECOMPONENTS_MESH_SurfaceElementRegion_HPP_ */
virtual void InitializePreSubGroups(Group *const) override
Called by Initialize() prior to initializing sub-Groups.
virtual const string getCatalogName() const override final
Get the name of the catalog.
SurfaceElementRegion()=delete
Deleted default constructor.
SurfaceSubRegionType subRegionType() const
Get subRegion type.
#define ENUM_STRINGS(ENUM,...)
Associate a list of string names with enumeration values.
Definition: EnumStrings.hpp:69
double real64
64-bit floating point type.
Definition: DataTypes.hpp:136
localIndex AddToFractureMesh(real64 const time_np1, EdgeManager *const edgeManager, FaceManager const *const faceManager, ArrayOfArraysView< localIndex const > const &originalFaceToEdges, string const &subRegionName, localIndex const faceIndices[2])
This function generates and adds entries to the face/fracture mesh.
virtual ~SurfaceElementRegion() override
Default destructor.
This class provides a view into an array of arrays like object.
real64 getDefaultAperture() const
Get default aperture value.
static const string CatalogName()
Get the key name for the SurfaceElementRegion in the object catalog.
std::int32_t integer
Signed integer type.
Definition: DataTypes.hpp:122
This class provides an interface to ObjectManagerBase in order to manage edge data.
Definition: EdgeManager.hpp:42
The ElementRegionBase is the base class to manage the data stored at the element level.
std::ptrdiff_t localIndex
Local index type (for indexing objects within an MPI partition).
Definition: DataTypes.hpp:125
virtual void GenerateMesh(Group *) override
Generate mesh.
The FaceManager class provides an interface to ObjectManagerBase in order to manage face data...
Definition: FaceManager.hpp:40
A struct to serve as a container for variable strings and keys.
Struct to serve as a container for variable strings and keys.