GEOSX
WellElementRegion.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 
20 #ifndef GEOS_MESH_WELLELEMENTREGION_HPP_
21 #define GEOS_MESH_WELLELEMENTREGION_HPP_
22 
23 #include "mesh/ElementRegionBase.hpp"
24 #include "mesh/generators/LineBlockABC.hpp"
25 
26 namespace geos
27 {
28 
29 class MeshLevel;
30 
38 {
39 public:
40 
45 
51  WellElementRegion( string const & name, Group * const parent );
52 
56  virtual ~WellElementRegion() override;
57 
61  WellElementRegion() = delete;
62 
64 
69 
74  static string catalogName()
75  { return "WellElementRegion"; }
76 
80  virtual string getCatalogName() const override final
81  { return catalogName(); }
82 
84 
89 
94  void setWellGeneratorName( string const & name ) { m_wellGeneratorName = name; }
95 
100  string const & getWellGeneratorName() const { return m_wellGeneratorName; }
101 
106  void setWellControlsName( string const & name ) { m_wellControlsName = name; }
107 
112  string const & getSubRegionName() const { return m_subRegionName; }
113 
115 
120 
124  void generateMesh( Group const & ) override {}
125 
133  void generateWell( MeshLevel & mesh,
134  LineBlockABC const & lineBlock,
135  globalIndex nodeOffsetGlobal,
136  globalIndex elemOffsetGlobal );
137 
139 
145  {
147  static constexpr char const * wellControlsString() { return "wellControlsName"; }
149  static constexpr char const * wellGeneratorString() { return "wellGeneratorName"; }
150 
155  }
158 
159 private:
160 
162  const string m_subRegionName;
163 
165  string m_wellControlsName;
166 
168  string m_wellGeneratorName;
169 
170 };
171 
172 } /* namespace geos */
173 
174 #endif /* GEOS_MESH_WELLELEMENTREGION_HPP_ */
The ElementRegionBase is the base class to manage the data stored at the element level.
Class facilitating the representation of a multi-level discretization of a MeshBody.
Definition: MeshLevel.hpp:41
This class specializes the element region for the case of a well. This class is also in charge of sta...
WellElementRegion()=delete
Deleted default constructor.
geos::WellElementRegion::viewKeyStruct viewKeysWellElementRegion
ViewKey struct for the WellElementRegion class.
void generateMesh(Group const &) override
Not implemented, this task is performed in GenerateWell.
void setWellControlsName(string const &name)
Set the name of the WellControls object of this well.
WellElementRegion(string const &name, Group *const parent)
Constructor.
virtual string getCatalogName() const override final
Get the catalog name.
void generateWell(MeshLevel &mesh, LineBlockABC const &lineBlock, globalIndex nodeOffsetGlobal, globalIndex elemOffsetGlobal)
Build the local well elements and perforations from global well geometry.
static string catalogName()
Get the catalog name.
string const & getWellGeneratorName() const
Get the name of the InternalWellGenerator object of this well.
void setWellGeneratorName(string const &name)
Set the name of the InternalWellGenerator object of this well.
virtual ~WellElementRegion() override
Default destructor.
string const & getSubRegionName() const
Get the name of the subRegion.
Group::wrapperMap::KeyIndex ViewKey
Type alias for KeyIndexT type used for wrapper lookups.
Definition: Group.hpp:1625
GEOSX_GLOBALINDEX_TYPE globalIndex
Global index type (for indexing objects across MPI partitions).
Definition: DataTypes.hpp:128
Struct to serve as a container for variable strings and keys.
Struct to serve as a container for variable strings and keys.
dataRepository::ViewKey wellControlsName
ViewKey for the well control name.
dataRepository::ViewKey wellGeneratorName
ViewKey for the well generator name.
static constexpr char const * wellGeneratorString()
static constexpr char const * wellControlsString()