intersect_rNd.h
Go to the documentation of this file.
1 /*
2 This file is part of the Ristra portage project.
3 Please see the license file at the root of this repository, or at:
4  https://github.com/laristra/portage/blob/master/LICENSE
5 */
6 
7 
8 #ifndef PORTAGE_INTERSECT_INTERSECT_RND_H_
9 #define PORTAGE_INTERSECT_INTERSECT_RND_H_
10 
14 
15 namespace Portage {
16 
17 // A struct templated on spatial dimension so that R3D based
18 // intersection classes can be referred to in a uniform manner
19 //
20 // Use as
21 // Portage::Intersect_RND<D>::Intersect<blah,blah,blah...>
22 //
23 // If Intersect becomes a dependent name, one may have to prefix it
24 // with the keyword 'template', like so
25 // Portage::Intersect_RND<D>::template Intersect
26 
27 template <int dim> struct IntersectRND;
28 
29 template <> struct IntersectRND<2> {
30  template<Wonton::Entity_kind ONWHAT,
31  class SourceMeshType,
32  class SourceStateType,
33  class TargetMeshType,
34  template<class, int, class, class> class InterfaceReconstructorType =
36  class MatPoly_Splitter = void,
37  class MatPoly_Clipper = void>
38  using Intersect = Portage::IntersectR2D<ONWHAT,
39  SourceMeshType,
40  SourceStateType,
41  TargetMeshType,
42  InterfaceReconstructorType,
43  MatPoly_Splitter,
44  MatPoly_Clipper>;
45 };
46 
47 template <> struct IntersectRND<3> {
48  template<Wonton::Entity_kind ONWHAT,
49  class SourceMeshType,
50  class SourceStateType,
51  class TargetMeshType,
52  template<class, int, class, class> class InterfaceReconstructorType =
54  class MatPoly_Splitter = void,
55  class MatPoly_Clipper = void>
56  using Intersect = Portage::IntersectR3D<ONWHAT,
57  SourceMeshType,
58  SourceStateType,
59  TargetMeshType,
60  InterfaceReconstructorType,
61  MatPoly_Splitter,
62  MatPoly_Clipper>;
63 };
64 
65 }
66 
67 #endif
Definition: dummy_interface_reconstructor.h:30
algorithm
Definition: intersect_r2d.h:44
Definition: intersect_rNd.h:27
Definition: intersect_r3d.h:56
Definition: coredriver.h:42