interpolate_nth_order.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_INTERPOLATE_INTERPOLATE_RND_H_
9 #define PORTAGE_INTERPOLATE_INTERPOLATE_RND_H_
10 
14 
15 namespace Portage {
16 
17 // A struct templated on interpolation order so that interpolate
18 // classes can be referred to in a uniform manner
19 //
20 // Use as
21 // Portage::Interpolate_NthOrder<O>::Interpolate<blah,blah...>
22 // where O is a compile time parameter
23 //
24 // If Interpolate becomes a dependent name, one may have to prefix it
25 // with the keyword 'template', like so
26 // Portage::Interpolate_NthOrder<D>::template Interpolate
27 
28 template <int order>
30 
31 template <> struct Interpolate_NthOrder<1> {
32  template<int D,
33  Wonton::Entity_kind ONWHAT,
34  class SourceMeshType,
35  class TargetMeshType,
36  class SourceStateType,
37  class TargetStateType = SourceStateType,
38  typename T = double,
39  template<class, int, class, class>
40  class InterfaceReconstructorType = DummyInterfaceReconstructor,
41  class MatPoly_Splitter = void,
42  class MatPoly_Clipper = void,
43  class CoordSys = Wonton::DefaultCoordSys>
45  SourceMeshType,
46  TargetMeshType,
47  SourceStateType,
48  TargetStateType,
49  T,
50  InterfaceReconstructorType,
51  MatPoly_Splitter,
52  MatPoly_Clipper,
53  CoordSys>;
54 };
55 
56 template <> struct Interpolate_NthOrder<2> {
57  template<int D,
58  Wonton::Entity_kind ONWHAT,
59  class SourceMeshType,
60  class TargetMeshType,
61  class SourceStateType,
62  class TargetStateType = SourceStateType,
63  typename T = double,
64  template<class, int, class, class>
65  class InterfaceReconstructorType = DummyInterfaceReconstructor,
66  class MatPoly_Splitter = void,
67  class MatPoly_Clipper = void,
68  class CoordSys = Wonton::DefaultCoordSys>
70  SourceMeshType,
71  TargetMeshType,
72  SourceStateType,
73  TargetStateType,
74  T,
75  InterfaceReconstructorType,
76  MatPoly_Splitter,
77  MatPoly_Clipper,
78  CoordSys>;
79 };
80 
81 }
82 
83 #endif
Definition: dummy_interface_reconstructor.h:30
Definition: coredriver.h:42
Interpolate_1stOrder does a 1st order interpolation of scalars.
Definition: interpolate_1st_order.h:101
Definition: interpolate_nth_order.h:29
Interpolate_2ndOrder does a 2nd order interpolation of scalars.
Definition: interpolate_2nd_order.h:70