Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
MeshRegionBoundary.h
Go to the documentation of this file.
1/* This file is part of MoDELib, the Mechanics Of Defects Evolution Library.
2 *
3 *
4 * MoDELib is distributed without any warranty under the
5 * GNU General Public License (GPL) v2 <http://www.gnu.org/licenses/>.
6 */
7
8#ifndef model_MeshRegionBoundary_H_
9#define model_MeshRegionBoundary_H_
10
11#include <set>
12#include <deque>
13#include <assert.h>
14
15#include <Polyhedron.h>
16
17namespace model
18{
19
20 template<int dim>
21 struct MeshRegionBoundary : public std::set<const Simplex<dim,dim-1>*>
22 /* */,public std::map<size_t,std::shared_ptr<Polyhedron<dim,dim-1>>>
23 {
24 typedef Simplex<dim,dim-1> SimplexType;
25 typedef Polyhedron<dim,dim-1> PlanarMeshFaceType;
26 typedef std::map<size_t,std::shared_ptr<PlanarMeshFaceType>> MeshFacesContainerType;
27
28 private:
29
30 PolyhedralMesh<dim>& topology;
31 void buildSingleFace(const Simplex<dim,dim-1>* newStart,
32 std::shared_ptr<Polyhedron<dim,dim-1>> newFace,
33 std::set<const Simplex<dim,dim-1>*>& allSimplices);
34 void buildFaces();
35
36 public:
37
38 const std::pair<int,int> regionBndID;
39
40 MeshRegionBoundary(const std::pair<size_t,size_t>& rbndID, PolyhedralMesh<dim>& topologyIn);
41 void update();
42 const std::set<const SimplexType*>& simplices() const;
43 std::set<const SimplexType*>& simplices();
44 const MeshFacesContainerType& faces() const;
46
47 };
48
49} // close namespace
50#endif
MeshRegionBoundary(const std::pair< size_t, size_t > &rbndID, PolyhedralMesh< dim > &topologyIn)
Simplex< dim, dim-1 > SimplexType
std::map< size_t, std::shared_ptr< PlanarMeshFaceType > > MeshFacesContainerType
const MeshFacesContainerType & faces() const
const std::set< const SimplexType * > & simplices() const
const std::pair< int, int > regionBndID
Polyhedron< dim, dim-1 > PlanarMeshFaceType