working for simple 2D cases
This commit is contained in:
@@ -477,12 +477,6 @@ void ParFiniteElementSpace::DivideByGroupSize(double *vec)
|
||||
|
||||
GroupCommunicator *ParFiniteElementSpace::ScalarGroupComm()
|
||||
{
|
||||
if (Nonconforming())
|
||||
{
|
||||
// MFEM_WARNING("Not implemented for NC mesh.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
GroupCommunicator *gc = new GroupCommunicator(GetGroupTopo());
|
||||
if (NURBSext)
|
||||
{
|
||||
|
||||
+2
-2
@@ -740,13 +740,13 @@ FaceElementTransformations *Mesh::GetBdrFaceTransformations(int BdrElemNo)
|
||||
return tr;
|
||||
}
|
||||
|
||||
void Mesh::GetFaceElements(int Face, int *Elem1, int *Elem2)
|
||||
void Mesh::GetFaceElements(int Face, int *Elem1, int *Elem2) const
|
||||
{
|
||||
*Elem1 = faces_info[Face].Elem1No;
|
||||
*Elem2 = faces_info[Face].Elem2No;
|
||||
}
|
||||
|
||||
void Mesh::GetFaceInfos(int Face, int *Inf1, int *Inf2)
|
||||
void Mesh::GetFaceInfos(int Face, int *Inf1, int *Inf2) const
|
||||
{
|
||||
*Inf1 = faces_info[Face].Elem1Inf;
|
||||
*Inf2 = faces_info[Face].Elem2Inf;
|
||||
|
||||
+2
-2
@@ -832,8 +832,8 @@ public:
|
||||
{
|
||||
return (faces_info[FaceNo].Elem2No >= 0);
|
||||
}
|
||||
void GetFaceElements (int Face, int *Elem1, int *Elem2);
|
||||
void GetFaceInfos (int Face, int *Inf1, int *Inf2);
|
||||
void GetFaceElements (int Face, int *Elem1, int *Elem2) const;
|
||||
void GetFaceInfos (int Face, int *Inf1, int *Inf2) const;
|
||||
|
||||
int GetFaceGeometryType(int Face) const;
|
||||
int GetFaceElementType(int Face) const;
|
||||
|
||||
+659
-508
File diff suppressed because it is too large
Load Diff
@@ -88,6 +88,57 @@ protected:
|
||||
|
||||
bool WantSkipSharedMaster(const NCMesh::Master &master) const;
|
||||
|
||||
int FindSharedFaces(const Mesh &mesh, const int* partition,
|
||||
Array<int>& face_group,
|
||||
ListOfIntegerSets& groups);
|
||||
|
||||
int FindSharedEdges(const Mesh &mesh, const int* partition,
|
||||
Table*& edge_element, ListOfIntegerSets& groups);
|
||||
|
||||
int FindSharedVertices(const Mesh &mesh, const int *partition,
|
||||
Table* vertex_element,
|
||||
ListOfIntegerSets& groups);
|
||||
|
||||
void BuildFaceGroup(int ngroups, const Array<int>& face_group,
|
||||
Table& group_sface);
|
||||
|
||||
void BuildEdgeGroup(int ngroups, const Table& edge_element,
|
||||
Table& group_sedge);
|
||||
|
||||
void BuildVertexGroup(int ngroups, const Table& vert_element,
|
||||
Table& group_svert);
|
||||
|
||||
void BuildSharedFaceElems(int nfaces, const Mesh& mesh,
|
||||
int* partitioning,
|
||||
STable3D* faces_tbl,
|
||||
Array<int>& face_group,
|
||||
Array<int>& vert_global_local);
|
||||
|
||||
void BuildSharedEdgeElems(int nedges, Mesh& mesh,
|
||||
Array<int>& vert_global_local,
|
||||
Table* edge_element);
|
||||
|
||||
void BuildSharedVertMapping(int nvert, Table* vert_element,
|
||||
Array<int>& vert_global_local);
|
||||
|
||||
int BuildVertGlobalLocal(Mesh& mesh, int* partitioning,
|
||||
Array<int>& vert_global_local);
|
||||
|
||||
/// fills out partitioned Mesh::vertices
|
||||
int BuildLocalVertices(const Mesh& global_mesh, const int* partitioning,
|
||||
Array<int>& vert_global_local);
|
||||
|
||||
/// fills out partitioned Mesh::elements
|
||||
int BuildLocalElements(const Mesh& global_mesh, const int* partitioning,
|
||||
const Array<int>& vert_global_local);
|
||||
|
||||
/// fills out partitioned Mesh::boundary
|
||||
int BuildLocalBoundary(const Mesh& global_mesh, const int* partitioning,
|
||||
const Array<int>& vert_global_local,
|
||||
Array<bool>& activeBdrElem,
|
||||
Table*& edge_element);
|
||||
|
||||
|
||||
public:
|
||||
/** Copy constructor. Performs a deep copy of (almost) all data, so that the
|
||||
source mesh can be modified (e.g. deleted, refined) without affecting the
|
||||
|
||||
Reference in New Issue
Block a user