Panzer
Version of the Day
Loading...
Searching...
No Matches
disc-fe
src
Panzer_ExplicitTemplateInstantiation.hpp
Go to the documentation of this file.
1
// @HEADER
2
// *****************************************************************************
3
// Panzer: A partial differential equation assembly
4
// engine for strongly coupled complex multiphysics systems
5
//
6
// Copyright 2011 NTESS and the Panzer contributors.
7
// SPDX-License-Identifier: BSD-3-Clause
8
// *****************************************************************************
9
// @HEADER
10
11
#ifndef PANZER_EXPLICIT_TEMPLATE_INSTANTIATION_HPP
12
#define PANZER_EXPLICIT_TEMPLATE_INSTANTIATION_HPP
13
14
#include "
Panzer_Traits.hpp
"
15
16
// ONE template argument
17
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_ONE_T(name) \
18
template class name<panzer::Traits::Residual>;
19
20
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_ONE_T(name) \
21
template class name<panzer::Traits::Tangent>;
22
23
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_ONE_T(name) \
24
template class name<panzer::Traits::Jacobian>;
25
26
#ifdef Panzer_BUILD_HESSIAN_SUPPORT
27
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_ONE_T(name) \
28
template class name<panzer::Traits::Hessian>;
29
#else
30
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_ONE_T(name)
31
#endif
32
33
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_ONE_T(name) \
34
PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_ONE_T(name) \
35
PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_ONE_T(name) \
36
PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_ONE_T(name) \
37
PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_ONE_T(name)
38
39
// TWO template arguments
40
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_TWO_T(name) \
41
template class name<panzer::Traits::Residual, panzer::Traits>;
42
43
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_TWO_T(name) \
44
template class name<panzer::Traits::Tangent, panzer::Traits>;
45
46
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_TWO_T(name) \
47
template class name<panzer::Traits::Jacobian, panzer::Traits>;
48
49
#ifdef Panzer_BUILD_HESSIAN_SUPPORT
50
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_TWO_T(name) \
51
template class name<panzer::Traits::Hessian, panzer::Traits>;
52
#else
53
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_TWO_T(name)
54
#endif
55
56
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TWO_T(name) \
57
PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_TWO_T(name) \
58
PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_TWO_T(name) \
59
PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_TWO_T(name) \
60
PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_TWO_T(name)
61
62
// THREE (one user defined) template arguments
63
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_THREE_T(name,ExtraT) \
64
template class name<panzer::Traits::Residual, panzer::Traits,ExtraT>;
65
66
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_THREE_T(name,ExtraT) \
67
template class name<panzer::Traits::Tangent, panzer::Traits,ExtraT>;
68
69
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_THREE_T(name,ExtraT) \
70
template class name<panzer::Traits::Jacobian, panzer::Traits,ExtraT>;
71
72
#ifdef Panzer_BUILD_HESSIAN_SUPPORT
73
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_T(name,ExtraT) \
74
template class name<panzer::Traits::Hessian, panzer::Traits,ExtraT>;
75
#else
76
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_T(name,ExtraT)
77
#endif
78
79
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_THREE_T(name,ExtraT) \
80
PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_THREE_T(name,ExtraT) \
81
PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_THREE_T(name,ExtraT) \
82
PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_THREE_T(name,ExtraT) \
83
PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_T(name,ExtraT)
84
85
// THREE (two user defined) template arguments
86
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
87
template class name<panzer::Traits::Residual,FirstExtraT,SecondExtraT>;
88
89
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
90
template class name<panzer::Traits::Tangent,FirstExtraT,SecondExtraT>;
91
92
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
93
template class name<panzer::Traits::Jacobian,FirstExtraT,SecondExtraT>;
94
95
#ifdef Panzer_BUILD_HESSIAN_SUPPORT
96
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
97
template class name<panzer::Traits::Hessian,FirstExtraT,SecondExtraT>;
98
#else
99
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_2U_T(name,FirstExtraT,SecondExtraT)
100
#endif
101
102
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
103
PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
104
PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
105
PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
106
PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_2U_T(name,FirstExtraT,SecondExtraT)
107
108
// FOUR (two user defined) template arguments
109
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_FOUR_T(name,FirstExtraT,SecondExtraT) \
110
template class name<panzer::Traits::Residual, panzer::Traits,FirstExtraT,SecondExtraT>;
111
112
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_FOUR_T(name,FirstExtraT,SecondExtraT) \
113
template class name<panzer::Traits::Tangent, panzer::Traits,FirstExtraT,SecondExtraT>;
114
115
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_FOUR_T(name,FirstExtraT,SecondExtraT) \
116
template class name<panzer::Traits::Jacobian, panzer::Traits,FirstExtraT,SecondExtraT>;
117
118
#ifdef Panzer_BUILD_HESSIAN_SUPPORT
119
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_FOUR_T(name,FirstExtraT,SecondExtraT) \
120
template class name<panzer::Traits::Hessian, panzer::Traits,FirstExtraT,SecondExtraT>;
121
#else
122
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_FOUR_T(name,FirstExtraT,SecondExtraT)
123
#endif
124
125
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_FOUR_T(name,FirstExtraT,SecondExtraT) \
126
PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_FOUR_T(name,FirstExtraT,SecondExtraT) \
127
PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_FOUR_T(name,FirstExtraT,SecondExtraT) \
128
PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_FOUR_T(name,FirstExtraT,SecondExtraT) \
129
PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_FOUR_T(name,FirstExtraT,SecondExtraT)
130
131
#endif
Panzer_Traits.hpp
Generated by
1.9.8