1#ifndef WMUNSTRUCTURED_PATCH_H
2#define WMUNSTRUCTURED_PATCH_H
30 const std::string& patchName,
33 const std::vector<int>& numElementsPerLayer,
34 const std::vector<int>& numNodesPerLayer,
35 const std::string& subdomainName,
112 void addLink(
const std::string& linkedPatchName,
113 int linkedPatchIndex,
114 const std::vector<int>& numElementsPerLayer);
116 setLinkedPatch(
int linkedPatchIndex,
const int* fromIndexes,
const int* toIndexes);
209 int from_patch_index,
210 const std::string& from_patch_name,
211 const std::vector<int>& num_linked_elements_per_layer);
Definition: wmdomain.h:35
Class used for generating mesh geometry concerns.
Definition: wmunstructuredgeometry.h:45
Definition: wmunstructuredpatch.h:22
int getNumElementsInLayer(int ghostLayer) const
WmUnstructuredGeometry * getUnstructuredGeometry() const
Definition: wmunstructuredpatch.h:96
int getLayerOfElement(int elementIndex) const
int _primitiveID
Definition: wmunstructuredpatch.h:155
int getNumTotalNodes() const
Definition: wmunstructuredpatch.h:74
std::map< int, WmUnstructuredPatchLink * > patchLinkMap_t
Definition: wmunstructuredpatch.h:25
int * _numNodesPerLayer
Definition: wmunstructuredpatch.h:170
int getPrimitiveID() const
Definition: wmunstructuredpatch.h:58
WxRange _subdomainRange
Definition: wmunstructuredpatch.h:183
const int * getMeshTranslation() const
Definition: wmunstructuredpatch.h:145
WxRange _patchRange
Definition: wmunstructuredpatch.h:180
WmUnstructuredPatch(int patchIndex, const std::string &patchName, int primitiveID, int numLayers, const std::vector< int > &numElementsPerLayer, const std::vector< int > &numNodesPerLayer, const std::string &subdomainName, WmDomain *pDomain)
const WmDomain & domain() const
Definition: wmunstructuredpatch.h:46
int _procID
Definition: wmunstructuredpatch.h:158
std::string _name
Definition: wmunstructuredpatch.h:152
std::map< int, int > getPatchConnectivity() const
std::string _subdomainName
Definition: wmunstructuredpatch.h:154
int getNumTotalElements() const
Definition: wmunstructuredpatch.h:70
void setMeshTranslation(int *mT)
int getNumElementsBelowLayer(int layer) const
int _numTotalElements
Definition: wmunstructuredpatch.h:163
patchLinkMap_t _linkedPatches
Definition: wmunstructuredpatch.h:177
const std::string & getSubdomainName() const
Definition: wmunstructuredpatch.h:88
const WxRange & getSubdomainRange() const
Definition: wmunstructuredpatch.h:131
void addLink(const std::string &linkedPatchName, int linkedPatchIndex, const std::vector< int > &numElementsPerLayer)
const WxRange & getPatchRange() const
Definition: wmunstructuredpatch.h:140
void setLinkedPatch(int linkedPatchIndex, const int *fromIndexes, const int *toIndexes)
void setPatchRange(const WxRange &range)
Definition: wmunstructuredpatch.h:136
WmDomain * getDomain() const
Definition: wmunstructuredpatch.h:92
int getNumLayers() const
Definition: wmunstructuredpatch.h:80
int _pMeshID
Definition: wmunstructuredpatch.h:166
bool isLocal() const
Definition: wmunstructuredpatch.h:84
int getNumNodesInLayer(int ghostLayer) const
WmUnstructuredGeometry * _pUG
Definition: wmunstructuredpatch.h:174
const WmUnstructuredPatchLink & getPatchLink(const WmUnstructuredPatch &patch) const
int _meshID
Definition: wmunstructuredpatch.h:165
int getProcID() const
Definition: wmunstructuredpatch.h:66
void setGeometry(WmUnstructuredGeometry *pUG)
Definition: wmunstructuredpatch.h:41
const patchLinkMap_t & getPatchLinks() const
Definition: wmunstructuredpatch.h:117
WmDomain * _domain
Definition: wmunstructuredpatch.h:156
int _patchIndex
Definition: wmunstructuredpatch.h:153
bool _local
Definition: wmunstructuredpatch.h:157
int _numTotalNodes
Definition: wmunstructuredpatch.h:171
int getPatchIndex() const
Definition: wmunstructuredpatch.h:54
const std::string & getName() const
Definition: wmunstructuredpatch.h:62
int getPMeshID() const
Definition: wmunstructuredpatch.h:107
int * _numElementsPerLayer
Definition: wmunstructuredpatch.h:162
void setSubdomainRange(const WxRange &range)
Definition: wmunstructuredpatch.h:127
std::pair< int, int > reconstructionID_t
Definition: wmunstructuredpatch.h:27
int * _meshTranslation
Definition: wmunstructuredpatch.h:167
int getMeshID() const
Definition: wmunstructuredpatch.h:103
int _numLayers
Definition: wmunstructuredpatch.h:159
std::pair< int, WmUnstructuredPatchLink * > patchLinkPair_t
Definition: wmunstructuredpatch.h:24
void setMeshIDs(int previousMeshID, int meshID)
The WmUnstructuredPatchLink class is used to define the elements to pull from another patch.
Definition: wmunstructuredpatch.h:198
const std::vector< int > & from_indexes() const
Get the transfer element indexes to pull from in the From Patch.
Definition: wmunstructuredpatch.h:254
const WmUnstructuredPatch * _from_patch
The linked (from) patch.
Definition: wmunstructuredpatch.h:314
bool _sharedBoundary
Is a shared boundary between two existing patches.
Definition: wmunstructuredpatch.h:317
const int * getIndexes() const
Definition: wmunstructuredpatch.h:290
const WmUnstructuredPatch & from_patch() const
Get the patch to transfer data from.
Definition: wmunstructuredpatch.h:236
~WmUnstructuredPatchLink()
Destructor.
const std::vector< int > & to_indexes() const
Get the transfer element indexes to push to in the To Patch.
Definition: wmunstructuredpatch.h:263
std::vector< int > _numElementsPerLayer
Number of elements in each element layer.
Definition: wmunstructuredpatch.h:326
int numBoundaryFaces() const
Definition: wmunstructuredpatch.h:304
const WmUnstructuredPatchLink & inverse() const
If patch A is connected to B by this link, the B is connected to A by the inverse link.
std::vector< int > _to_indexes
Indexes in the to patch (host) to push to.
Definition: wmunstructuredpatch.h:335
const WmUnstructuredPatch & to_patch() const
Get the patch to transfer data to.
Definition: wmunstructuredpatch.h:245
std::string _from_patch_name
The linked (from) name - used if this is a boundary condition.
Definition: wmunstructuredpatch.h:320
const WmUnstructuredPatch * getHostPatch() const
Definition: wmunstructuredpatch.h:295
std::vector< int > _from_indexes
Indexes in the from patch to pull from.
Definition: wmunstructuredpatch.h:332
const std::string & getLinkedSubdomainName() const
bool isShared() const
Is the boundary shared between two existing patches.
Definition: wmunstructuredpatch.h:227
const std::vector< int > & getNumElementsPerLayer() const
Definition: wmunstructuredpatch.h:282
int _numElements
Number of elements in the link.
Definition: wmunstructuredpatch.h:329
const WmUnstructuredPatch * getLinkedPatch() const
Definition: wmunstructuredpatch.h:299
WmUnstructuredPatchLink(const WmUnstructuredPatch &to_patch, int from_patch_index, const std::string &from_patch_name, const std::vector< int > &num_linked_elements_per_layer)
Constructor.
int getNumElements() const
Definition: wmunstructuredpatch.h:278
int _from_patch_index
The linked (from) patch index.
Definition: wmunstructuredpatch.h:323
void setLinkedIndexes(const int *fromIndexes, const int *toIndexes)
Set the to and from indexes for the link.
const WmUnstructuredPatch & _to_patch
The host (to) patch for the link (must exist)
Definition: wmunstructuredpatch.h:311
const int * getLinkedIndexes() const
Definition: wmunstructuredpatch.h:286
Class used for generating reconstruction arrays for the high-order finite volume method.
Definition: wmunstructuredreconstruction.h:19
WxRange represents a hyper-rectangular domain of an n-dimensional space of integers.
Definition: wxrange.h:23