Panzer
Version of the Day
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
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 on Thu Nov 21 2024 09:17:08 for Panzer by
1.8.5