Nalu
Nalu: a generalized unstructured massively parallel low Mach flow code designed to support a variety of energy applications of interest (most notably Wind ECP) built on the Sierra Toolkit and Trilinos solver Tpetra/Epetra stack. The open source BSD, clause 3 license model has been chosen for the code base. See LICENSE for more information. http://NaluCFD.org
BuildTemplates.h
Go to the documentation of this file.
1 /*------------------------------------------------------------------------*/
2 /* Copyright 2014 Sandia Corporation. */
3 /* This software is released under the license detailed */
4 /* in the file, LICENSE, which is located in the top-level Nalu */
5 /* directory structure */
6 /*------------------------------------------------------------------------*/
7 
8 
9 #ifndef BuildTemplates_h
10 #define BuildTemplates_h
11 
12 #include <AlgTraits.h>
13 
14 #ifndef USER_POLY_ORDER
15 #define USER_POLY_ORDER 5
16 #endif
17 
18 
19 namespace sierra{
20 namespace nalu{
21 
22 #define INSTANTIATE_KERNEL_3D(ClassName) \
23 template class ClassName<AlgTraitsHex8>; \
24 template class ClassName<AlgTraitsHex27>; \
25 template class ClassName<AlgTraitsTet4>; \
26 template class ClassName<AlgTraitsPyr5>; \
27 template class ClassName<AlgTraitsWed6>; \
28 
29 #define INSTANTIATE_KERNEL_2D(ClassName) \
30 template class ClassName<AlgTraitsQuad4_2D>; \
31 template class ClassName<AlgTraitsQuad9_2D>; \
32 template class ClassName<AlgTraitsTri3_2D>; \
33 
34 #define INSTANTIATE_KERNEL_3D_HO(ClassName) \
35 template class ClassName<AlgTraitsHexGL<2>>; \
36 template class ClassName<AlgTraitsHexGL<3>>; \
37 template class ClassName<AlgTraitsHexGL<4>>; \
38 template class ClassName<AlgTraitsHexGL<USER_POLY_ORDER>>; \
39 
40 #define INSTANTIATE_KERNEL_2D_HO(ClassName) \
41 template class ClassName<AlgTraitsQuadGL<2>>; \
42 template class ClassName<AlgTraitsQuadGL<3>>; \
43 template class ClassName<AlgTraitsQuadGL<4>>; \
44 template class ClassName<AlgTraitsQuadGL<USER_POLY_ORDER>>; \
45 
46 #define INSTANTIATE_KERNEL(ClassName) \
47  INSTANTIATE_KERNEL_3D(ClassName) \
48  INSTANTIATE_KERNEL_2D(ClassName) \
49  INSTANTIATE_KERNEL_3D_HO(ClassName) \
50  INSTANTIATE_KERNEL_2D_HO(ClassName) \
51 
52 
53 } // namespace nalu
54 } // namespace Sierra
55 
56 #endif
Definition: ABLForcingAlgorithm.C:26