VPTissue Reference Manual
MeshCheck.h
Go to the documentation of this file.
1 #ifndef MESH_CHECK_H_INCLUDED
2 #define MESH_CHECK_H_INCLUDED
3 /*
4  * Copyright 2011-2016 Universiteit Antwerpen
5  *
6  * Licensed under the EUPL, Version 1.1 or as soon they will be approved by
7  * the European Commission - subsequent versions of the EUPL (the "Licence");
8  * You may not use this work except in compliance with the Licence.
9  * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl5
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the Licence is distributed on an "AS IS" basis,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the Licence for the specific language governing
15  * permissions and limitations under the Licence.
16  */
22 namespace SimPT_Sim {
23 
24 class Mesh;
25 
29 class MeshCheck
30 {
31 public:
35  MeshCheck(const Mesh& mesh);
36 
40  bool CheckAll() const;
41 
47  bool CheckAreas() const;
48 
53  bool CheckAtBoundaryNodes() const;
54 
60  bool CheckCellBoundaryWallNodes() const;
61 
66  bool CheckCellBoundaryWalls() const;
67 
71  bool CheckCellIdsSequence() const;
72 
76  bool CheckCellIdsUnique() const;
77 
82  bool CheckEdgeOwners() const;
83 
87  bool CheckMutuallyNeighbors() const;
88 
92  bool CheckNodeIdsSequence() const;
93 
97  bool CheckNodeIdsUnique() const;
98 
103  bool CheckNodeOwningNeighbors() const;
104 
109  bool CheckNodeOwningWalls() const;
110 
117  bool CheckWallNeighborsList() const;
118 
122  bool CheckWallIdsSequence() const;
123 
127  bool CheckWallIdsUnique() const;
128 
129 private:
130  MeshCheck(const MeshCheck& );
131  MeshCheck& operator=(const MeshCheck& );
132 
133 private:
135  const Mesh& m_mesh;
136 };
137 
138 }
139 #endif // end_of_include_guard
140 
bool CheckNodeIdsSequence() const
Verifies that node ids correspond to storage sequence.
Definition: MeshCheck.cpp:268
bool CheckCellBoundaryWalls() const
Verifies that for all cells the Cell::HasBoundaryWall agrees with Mesh::IsWallNeighbor for boundary p...
Definition: MeshCheck.cpp:161
bool CheckAll() const
Runs all of the of checks to verify consistency of the mesh.
Definition: MeshCheck.cpp:63
bool CheckNodeIdsUnique() const
Verifies that node identifiers are unique.
Definition: MeshCheck.cpp:284
bool CheckMutuallyNeighbors() const
Verifies that Cell::IsWallNeighbor is a symmetric relationship.
Definition: MeshCheck.cpp:252
bool CheckWallIdsUnique() const
Verifies that wall identifiers are unique.
Definition: MeshCheck.cpp:383
bool CheckAtBoundaryNodes() const
Verifies Node::IsAtBoundary is true iff node is part of boundary polygon, for every node in the mesh...
Definition: MeshCheck.cpp:98
Namespace for the core simulator.
bool CheckCellIdsUnique() const
Verifies that cell identifiers are unique.
Definition: MeshCheck.cpp:192
Checks mesh concistency.
Definition: MeshCheck.h:29
bool CheckAreas() const
Verifies that sum of all cell areas equals the area of the boundary polygon.
Definition: MeshCheck.cpp:84
bool CheckWallNeighborsList() const
Verifies whether every cell has exactly one entry in the wall neighbor list (except when there is onl...
Definition: MeshCheck.cpp:402
Structure of cells; key data structure.
Definition: Mesh.h:62
bool CheckCellBoundaryWallNodes() const
Verifies that for each cell, each boundary wall (other cell owning the wall is the boundary polygon) ...
Definition: MeshCheck.cpp:111
bool CheckCellIdsSequence() const
Verifies that cell ids correspond to storage sequence.
Definition: MeshCheck.cpp:176
bool CheckNodeOwningNeighbors() const
Verifies that for each node its NeighborNodes constructs appear once and only once in the NodeOwningN...
Definition: MeshCheck.cpp:303
bool CheckWallIdsSequence() const
Verifies that wall ids correspond to storage sequence.
Definition: MeshCheck.cpp:367
bool CheckNodeOwningWalls() const
Verifies that the owning walls of every node are exactly those walls to which the node belongs...
Definition: MeshCheck.cpp:322
bool CheckEdgeOwners() const
Verifies that every edge has exactly two neighbor cells by using Mesh::GetEdgeOwners.
Definition: MeshCheck.cpp:211