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
52
// ONE template argument
54
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_ONE_T(name) \
55
template class name<panzer::Traits::Residual>;
56
58
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_ONE_T(name) \
59
template class name<panzer::Traits::Tangent>;
60
62
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_ONE_T(name) \
63
template class name<panzer::Traits::Jacobian>;
64
65
#ifdef Panzer_BUILD_HESSIAN_SUPPORT
67
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_ONE_T(name) \
68
template class name<panzer::Traits::Hessian>;
69
#else
70
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_ONE_T(name)
71
#endif
72
77
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_ONE_T(name) \
78
PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_ONE_T(name) \
79
PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_ONE_T(name) \
80
PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_ONE_T(name) \
81
PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_ONE_T(name)
82
83
// TWO template arguments
85
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_TWO_T(name) \
86
template class name<panzer::Traits::Residual, panzer::Traits>;
87
89
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_TWO_T(name) \
90
template class name<panzer::Traits::Tangent, panzer::Traits>;
91
93
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_TWO_T(name) \
94
template class name<panzer::Traits::Jacobian, panzer::Traits>;
95
96
#ifdef Panzer_BUILD_HESSIAN_SUPPORT
98
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_TWO_T(name) \
99
template class name<panzer::Traits::Hessian, panzer::Traits>;
100
#else
101
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_TWO_T(name)
102
#endif
103
111
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TWO_T(name) \
112
PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_TWO_T(name) \
113
PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_TWO_T(name) \
114
PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_TWO_T(name) \
115
PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_TWO_T(name)
116
117
// THREE (one user defined) template arguments
119
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_THREE_T(name,ExtraT) \
120
template class name<panzer::Traits::Residual, panzer::Traits,ExtraT>;
121
123
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_THREE_T(name,ExtraT) \
124
template class name<panzer::Traits::Tangent, panzer::Traits,ExtraT>;
125
127
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_THREE_T(name,ExtraT) \
128
template class name<panzer::Traits::Jacobian, panzer::Traits,ExtraT>;
129
130
#ifdef Panzer_BUILD_HESSIAN_SUPPORT
132
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_T(name,ExtraT) \
133
template class name<panzer::Traits::Hessian, panzer::Traits,ExtraT>;
134
#else
135
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_T(name,ExtraT)
136
#endif
137
143
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_THREE_T(name,ExtraT) \
144
PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_THREE_T(name,ExtraT) \
145
PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_THREE_T(name,ExtraT) \
146
PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_THREE_T(name,ExtraT) \
147
PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_T(name,ExtraT)
148
149
// THREE (two user defined) template arguments
151
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
152
template class name<panzer::Traits::Residual,FirstExtraT,SecondExtraT>;
153
155
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
156
template class name<panzer::Traits::Tangent,FirstExtraT,SecondExtraT>;
157
159
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
160
template class name<panzer::Traits::Jacobian,FirstExtraT,SecondExtraT>;
161
162
#ifdef Panzer_BUILD_HESSIAN_SUPPORT
164
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
165
template class name<panzer::Traits::Hessian,FirstExtraT,SecondExtraT>;
166
#else
167
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_2U_T(name,FirstExtraT,SecondExtraT)
168
#endif
169
180
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
181
PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
182
PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
183
PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
184
PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_2U_T(name,FirstExtraT,SecondExtraT)
185
186
// FOUR (two user defined) template arguments
188
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_FOUR_T(name,FirstExtraT,SecondExtraT) \
189
template class name<panzer::Traits::Residual, panzer::Traits,FirstExtraT,SecondExtraT>;
190
192
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_FOUR_T(name,FirstExtraT,SecondExtraT) \
193
template class name<panzer::Traits::Tangent, panzer::Traits,FirstExtraT,SecondExtraT>;
194
196
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_FOUR_T(name,FirstExtraT,SecondExtraT) \
197
template class name<panzer::Traits::Jacobian, panzer::Traits,FirstExtraT,SecondExtraT>;
198
199
#ifdef Panzer_BUILD_HESSIAN_SUPPORT
201
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_FOUR_T(name,FirstExtraT,SecondExtraT) \
202
template class name<panzer::Traits::Hessian, panzer::Traits,FirstExtraT,SecondExtraT>;
203
#else
204
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_FOUR_T(name,FirstExtraT,SecondExtraT)
205
#endif
206
213
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_FOUR_T(name,FirstExtraT,SecondExtraT) \
214
PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_FOUR_T(name,FirstExtraT,SecondExtraT) \
215
PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_FOUR_T(name,FirstExtraT,SecondExtraT) \
216
PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_FOUR_T(name,FirstExtraT,SecondExtraT) \
217
PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_FOUR_T(name,FirstExtraT,SecondExtraT)
218
219
#endif
Panzer_Traits.hpp
Generated by
1.9.8