CArl
Code Arlequin / C++ implementation
restrict_mesh.h
Go to the documentation of this file.
1 /*
2  * restrict_mesh.h
3  *
4  * Created on: May 17, 2016
5  * Author: Thiago Milanetto Schlittler
6  */
7 
8 #ifndef COMMON_INTERSECTIONS_PARALLEL_RESTRICT_MESH_H_
9 #define COMMON_INTERSECTIONS_PARALLEL_RESTRICT_MESH_H_
10 
11 #include "carl_headers.h"
12 #include "mesh_tables.h"
13 
14 #include "intersection_tools.h"
15 #include "patch_construction.h"
16 
17 namespace carl
18 {
19 
20 
21 // **********************
22 // Mesh_restriction class
23 // **********************
24 
32 {
33 public:
34 
35  // Constructors
37  Mesh_restriction(libMesh::Mesh & mesh, const libMesh::Parallel::Communicator& local_comm, bool debugOutput = false)
38  : Patch_construction(mesh, local_comm, debugOutput)
39  {
40 
41  };
42 
44  void BuildRestriction(const libMesh::ReplicatedMesh & Coupling_mesh);
45 
47  libMesh::ReplicatedMesh & restricted_mesh();
48 
50  void export_restriction_mesh(const std::string & filename_base);
51 
53  void BuildRestrictionFromSet(const std::unordered_set<unsigned int> * restricted_mesh_set);
54 };
55 }
56 
57 #endif /* COMMON_INTERSECTIONS_PARALLEL_RESTRICT_MESH_H_ */
void BuildRestrictionFromSet(const std::unordered_set< unsigned int > *restricted_mesh_set)
Build the restriction of the parent mesh from a given element set. This version is useful if the inte...
libMesh::ReplicatedMesh & restricted_mesh()
Returns the restricted mesh.
Class used to build a mesh patch from a parent mesh and an coupling mesh element. ...
void export_restriction_mesh(const std::string &filename_base)
Export the restricted mesh to a file.
Mesh_restriction(libMesh::Mesh &mesh, const libMesh::Parallel::Communicator &local_comm, bool debugOutput=false)
Constructor with a pre-defined parent mesh and a local communicator.
Definition: restrict_mesh.h:37
Class used to build a restriction of a parent mesh to the coupling region.
Definition: restrict_mesh.h:31
void BuildRestriction(const libMesh::ReplicatedMesh &Coupling_mesh)
Build the restriction of the parent mesh to the coupling region defined by Coupling_mesh.