GEOS
WellElementRegion.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2024 Total, S.A
7  * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University
8  * Copyright (c) 2023-2024 Chevron
9  * Copyright (c) 2019- GEOS/GEOSX Contributors
10  * All rights reserved
11  *
12  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
13  * ------------------------------------------------------------------------------------------------------------
14  */
15 
21 #ifndef GEOS_MESH_WELLELEMENTREGION_HPP_
22 #define GEOS_MESH_WELLELEMENTREGION_HPP_
23 
24 #include "mesh/ElementRegionBase.hpp"
25 #include "mesh/generators/LineBlockABC.hpp"
26 
27 namespace geos
28 {
29 
30 class MeshLevel;
31 
39 {
40 public:
41 
46 
52  WellElementRegion( string const & name, Group * const parent );
53 
57  virtual ~WellElementRegion() override;
58 
62  WellElementRegion() = delete;
63 
65 
70 
75  static string catalogName()
76  { return "WellElementRegion"; }
77 
81  virtual string getCatalogName() const override final
82  { return catalogName(); }
83 
85 
90 
95  void setWellGeneratorName( string const & name ) { m_wellGeneratorName = name; }
96 
101  string const & getWellGeneratorName() const { return m_wellGeneratorName; }
102 
107  void setWellControlsName( string const & name ) { m_wellControlsName = name; }
108 
113  string const & getSubRegionName() const { return m_subRegionName; }
114 
116 
121 
125  void generateMesh( Group const & ) override {}
126 
134  void generateWell( MeshLevel & mesh,
135  LineBlockABC const & lineBlock,
136  globalIndex nodeOffsetGlobal,
137  globalIndex elemOffsetGlobal );
138 
140 
146  {
148  static constexpr char const * wellControlsString() { return "wellControlsName"; }
150  static constexpr char const * wellGeneratorString() { return "wellGeneratorName"; }
151 
156  }
159 
160 private:
161 
163  const string m_subRegionName;
164 
166  string m_wellControlsName;
167 
169  string m_wellGeneratorName;
170 
171 };
172 
173 } /* namespace geos */
174 
175 #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:42
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:1662
GEOS_GLOBALINDEX_TYPE globalIndex
Global index type (for indexing objects across MPI partitions).
Definition: DataTypes.hpp:88
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()