20 #ifndef GEOSX_MESHUTILITIES_INTERNALWELLGENERATOR_HPP_ 21 #define GEOSX_MESHUTILITIES_INTERNALWELLGENERATOR_HPP_ 29 namespace dataRepository
33 string const nodeCoords =
"polylineNodeCoords";
34 string const segmentConn =
"polylineSegmentConn";
35 string const nElems =
"numElementsPerSegment";
36 string const radius =
"radius";
37 string const wellRegionName =
"wellRegionName";
38 string const wellControlsName =
"wellControlsName";
39 string const meshBodyName =
"meshName";
72 Group *
const parent );
110 virtual Group * CreateChild(
string const & childKey,
111 string const & childName )
override;
116 virtual void ExpandObjectCatalogs()
override;
129 int const )
override {}
235 void PostProcessInput()
override final;
247 void ConstructPolylineNodeToSegmentMap();
252 void FindPolylineHeadNodeIndex();
257 void DiscretizePolyline();
262 void ConnectPerforationsToWellElements();
267 void MergePerforations();
280 void DebugWellGeometry()
const;
289 int m_numElemsPerSegment;
295 string m_wellRegionName;
298 string m_wellControlsName;
301 string m_meshBodyName;
arrayView2d< real64 const > GetNodeCoords() const
Get the physical location of the centers of well elements.
long long int globalIndex
Global index type (for indexing objects across MPI partitions).
static string CatalogName()
Get the catalog name.
globalIndex GetNumPerforations() const
Get the global number of perforations on this well.
arrayView1d< arrayView1d< globalIndex const > const > GetPrevElemIndices() const
Get the global indices mapping an element to the previous ones.
real64 GetElementRadius() const
Get the radius in the well.
arrayView1d< globalIndex const > GetPerfElemIndex() const
Get the global indices of the well elements connected to each perforation.
This class serves to provide a "view" of a multidimensional array.
double real64
64-bit floating point type.
Struct to define the top and bottom node of a segment.
arrayView2d< real64 const > GetPerfCoords() const
Get the locations of the perforations.
The MeshGeneratorBase class provides an abstract base class implementation for different mesh types...
virtual void GenerateElementRegions(DomainPartition &) override
not implemented
virtual void GetElemToNodesRelationInBox(std::string const &, int const *, int const &, int *, int const) override
not implemented
std::int32_t integer
Signed integer type.
arrayView2d< real64 const > GetElemCoords() const
Get the physical location of the centers of well elements.
arrayView2d< globalIndex const > GetElemToNodesMap() const
Get the global indices of the well nodes nodes connected to each element.
arrayView1d< real64 const > GetElemVolume() const
Get the volume of the well elements.
arrayView1d< real64 const > GetPerfTransmissibility() const
Get the well transmissibility at the perforations.
std::string string
String type.
virtual void RemapMesh(dataRepository::Group *const) override
not implemented
globalIndex GetNumNodes() const
Get the global number of well nodes.
This class provides a fixed dimensional resizeable array interface in addition to an interface simila...
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
globalIndex GetNumElements() const
Get the global number of well elements.
arrayView1d< globalIndex const > GetNextElemIndex() const
Get the global indices mapping an element to the next.