Panzer Version of the Day
Loading...
Searching...
No Matches
Macros
Panzer_ExplicitTemplateInstantiation.hpp File Reference

Convenience macros for explicitly instantiating panzer template classes over all enabled evaluation types. More...

#include "Panzer_Traits.hpp"
Include dependency graph for Panzer_ExplicitTemplateInstantiation.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_ONE_T(name)    template class name<panzer::Traits::Residual>;
 Explicitly instantiates name<panzer::Traits::Residual>.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_ONE_T(name)    template class name<panzer::Traits::Tangent>;
 Explicitly instantiates name<panzer::Traits::Tangent>.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_ONE_T(name)    template class name<panzer::Traits::Jacobian>;
 Explicitly instantiates name<panzer::Traits::Jacobian>.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_ONE_T(name)    template class name<panzer::Traits::Hessian>;
 Explicitly instantiates name<panzer::Traits::Hessian>. Only defined when built with Hessian support.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_ONE_T(name)
 Explicitly instantiates name<EvalT> for every enabled evaluation type EvalT.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_TWO_T(name)    template class name<panzer::Traits::Residual, panzer::Traits>;
 Explicitly instantiates name<panzer::Traits::Residual, panzer::Traits>.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_TWO_T(name)    template class name<panzer::Traits::Tangent, panzer::Traits>;
 Explicitly instantiates name<panzer::Traits::Tangent, panzer::Traits>.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_TWO_T(name)    template class name<panzer::Traits::Jacobian, panzer::Traits>;
 Explicitly instantiates name<panzer::Traits::Jacobian, panzer::Traits>.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_TWO_T(name)    template class name<panzer::Traits::Hessian, panzer::Traits>;
 Explicitly instantiates name<panzer::Traits::Hessian, panzer::Traits>. Only defined when built with Hessian support.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TWO_T(name)
 Explicitly instantiates name<EvalT, panzer::Traits> for every enabled evaluation type EvalT.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_THREE_T(name, ExtraT)    template class name<panzer::Traits::Residual, panzer::Traits,ExtraT>;
 Explicitly instantiates name<panzer::Traits::Residual, panzer::Traits, ExtraT>.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_THREE_T(name, ExtraT)    template class name<panzer::Traits::Tangent, panzer::Traits,ExtraT>;
 Explicitly instantiates name<panzer::Traits::Tangent, panzer::Traits, ExtraT>.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_THREE_T(name, ExtraT)    template class name<panzer::Traits::Jacobian, panzer::Traits,ExtraT>;
 Explicitly instantiates name<panzer::Traits::Jacobian, panzer::Traits, ExtraT>.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_T(name, ExtraT)    template class name<panzer::Traits::Hessian, panzer::Traits,ExtraT>;
 Explicitly instantiates name<panzer::Traits::Hessian, panzer::Traits, ExtraT>. Only defined when built with Hessian support.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_THREE_T(name, ExtraT)
 Explicitly instantiates name<EvalT, panzer::Traits, ExtraT> for every enabled evaluation type EvalT.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_THREE_2U_T(name, FirstExtraT, SecondExtraT)    template class name<panzer::Traits::Residual,FirstExtraT,SecondExtraT>;
 Explicitly instantiates name<panzer::Traits::Residual, FirstExtraT, SecondExtraT> (no panzer::Traits argument).
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_THREE_2U_T(name, FirstExtraT, SecondExtraT)    template class name<panzer::Traits::Tangent,FirstExtraT,SecondExtraT>;
 Explicitly instantiates name<panzer::Traits::Tangent, FirstExtraT, SecondExtraT> (no panzer::Traits argument).
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_THREE_2U_T(name, FirstExtraT, SecondExtraT)    template class name<panzer::Traits::Jacobian,FirstExtraT,SecondExtraT>;
 Explicitly instantiates name<panzer::Traits::Jacobian, FirstExtraT, SecondExtraT> (no panzer::Traits argument).
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_2U_T(name, FirstExtraT, SecondExtraT)    template class name<panzer::Traits::Hessian,FirstExtraT,SecondExtraT>;
 Explicitly instantiates name<panzer::Traits::Hessian, FirstExtraT, SecondExtraT> (no panzer::Traits argument). Only defined when built with Hessian support.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_THREE_2U_T(name, FirstExtraT, SecondExtraT)
 Explicitly instantiates name<EvalT, FirstExtraT, SecondExtraT> for every enabled evaluation type EvalT.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_FOUR_T(name, FirstExtraT, SecondExtraT)    template class name<panzer::Traits::Residual, panzer::Traits,FirstExtraT,SecondExtraT>;
 Explicitly instantiates name<panzer::Traits::Residual, panzer::Traits, FirstExtraT, SecondExtraT>.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_FOUR_T(name, FirstExtraT, SecondExtraT)    template class name<panzer::Traits::Tangent, panzer::Traits,FirstExtraT,SecondExtraT>;
 Explicitly instantiates name<panzer::Traits::Tangent, panzer::Traits, FirstExtraT, SecondExtraT>.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_FOUR_T(name, FirstExtraT, SecondExtraT)    template class name<panzer::Traits::Jacobian, panzer::Traits,FirstExtraT,SecondExtraT>;
 Explicitly instantiates name<panzer::Traits::Jacobian, panzer::Traits, FirstExtraT, SecondExtraT>.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_FOUR_T(name, FirstExtraT, SecondExtraT)    template class name<panzer::Traits::Hessian, panzer::Traits,FirstExtraT,SecondExtraT>;
 Explicitly instantiates name<panzer::Traits::Hessian, panzer::Traits, FirstExtraT, SecondExtraT>. Only defined when built with Hessian support.
 
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_FOUR_T(name, FirstExtraT, SecondExtraT)
 Explicitly instantiates name<EvalT, panzer::Traits, FirstExtraT, SecondExtraT> for every enabled evaluation type EvalT.
 

Detailed Description

Convenience macros for explicitly instantiating panzer template classes over all enabled evaluation types.

Panzer evaluators, responses, and similar classes are templated on an evaluation type EvalT (see panzer::Traits::EvalTypes: Residual, Jacobian, Tangent, and optionally Hessian). Rather than letting every translation unit that uses such a class implicitly instantiate and compile it, each class is explicitly instantiated exactly once, in its own .cpp file, using the macros below. This avoids redundant template instantiation across the library and significantly reduces build times.

The macros are grouped by how many template arguments the class takes in addition to (or instead of) the evaluation type itself:

Within each group, the top-level PANZER_INSTANTIATE_TEMPLATE_CLASS_* macro is the one client .cpp files invoke; it expands to one template class ...; instantiation per evaluation type, built out of the per-evaluation-type _RESIDUAL_, _TANGENT_, _JACOBIAN_, and _HESSIAN_ macros. The _HESSIAN_ variants expand to nothing unless Panzer_BUILD_HESSIAN_SUPPORT is defined, so Hessian instantiations are silently skipped in builds without Hessian support.

Example: PANZER_INSTANTIATE_TEMPLATE_CLASS_TWO_T(panzer::MyEvaluator) in Panzer_MyEvaluator.cpp explicitly instantiates panzer::MyEvaluator<panzer::Traits::Residual, panzer::Traits>, <..::Jacobian, ..>, <..::Tangent, ..>, and (if enabled) <..::Hessian, ..>.

Definition in file Panzer_ExplicitTemplateInstantiation.hpp.

Macro Definition Documentation

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_ONE_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_ONE_T (   name)     template class name<panzer::Traits::Residual>;

Explicitly instantiates name<panzer::Traits::Residual>.

Parameters
namethe template class to instantiate.

Definition at line 54 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_ONE_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_ONE_T (   name)     template class name<panzer::Traits::Tangent>;

Explicitly instantiates name<panzer::Traits::Tangent>.

Parameters
namethe template class to instantiate.

Definition at line 58 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_ONE_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_ONE_T (   name)     template class name<panzer::Traits::Jacobian>;

Explicitly instantiates name<panzer::Traits::Jacobian>.

Parameters
namethe template class to instantiate.

Definition at line 62 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_ONE_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_ONE_T (   name)     template class name<panzer::Traits::Hessian>;

Explicitly instantiates name<panzer::Traits::Hessian>. Only defined when built with Hessian support.

Parameters
namethe template class to instantiate.

Definition at line 67 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_ONE_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_ONE_T (   name)
Value:
PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_ONE_T(name) \
PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_ONE_T(name) \
PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_ONE_T(name)
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_ONE_T(name)
Explicitly instantiates name<panzer::Traits::Residual>.

Explicitly instantiates name<EvalT> for every enabled evaluation type EvalT.

Parameters
namethe template class to instantiate; must take a single template parameter (the evaluation type).

Definition at line 77 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_TWO_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_TWO_T (   name)     template class name<panzer::Traits::Residual, panzer::Traits>;

Explicitly instantiates name<panzer::Traits::Residual, panzer::Traits>.

Parameters
namethe template class to instantiate.

Definition at line 85 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_TWO_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_TWO_T (   name)     template class name<panzer::Traits::Tangent, panzer::Traits>;

Explicitly instantiates name<panzer::Traits::Tangent, panzer::Traits>.

Parameters
namethe template class to instantiate.

Definition at line 89 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_TWO_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_TWO_T (   name)     template class name<panzer::Traits::Jacobian, panzer::Traits>;

Explicitly instantiates name<panzer::Traits::Jacobian, panzer::Traits>.

Parameters
namethe template class to instantiate.

Definition at line 93 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_TWO_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_TWO_T (   name)     template class name<panzer::Traits::Hessian, panzer::Traits>;

Explicitly instantiates name<panzer::Traits::Hessian, panzer::Traits>. Only defined when built with Hessian support.

Parameters
namethe template class to instantiate.

Definition at line 98 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_TWO_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TWO_T (   name)
Value:
PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_TWO_T(name) \
PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_TWO_T(name) \
PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_TWO_T(name)
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_TWO_T(name)
Explicitly instantiates name<panzer::Traits::Residual, panzer::Traits>.

Explicitly instantiates name<EvalT, panzer::Traits> for every enabled evaluation type EvalT.

This is the macro used by most panzer evaluators, which are templated on both the evaluation type and the traits class.

Parameters
namethe template class to instantiate; must take the evaluation type and panzer::Traits as its two template parameters.

Definition at line 111 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_THREE_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_THREE_T (   name,
  ExtraT 
)     template class name<panzer::Traits::Residual, panzer::Traits,ExtraT>;

Explicitly instantiates name<panzer::Traits::Residual, panzer::Traits, ExtraT>.

Parameters
namethe template class to instantiate.
ExtraTthe additional, user-supplied template argument.

Definition at line 119 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_THREE_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_THREE_T (   name,
  ExtraT 
)     template class name<panzer::Traits::Tangent, panzer::Traits,ExtraT>;

Explicitly instantiates name<panzer::Traits::Tangent, panzer::Traits, ExtraT>.

Parameters
namethe template class to instantiate.
ExtraTthe additional, user-supplied template argument.

Definition at line 123 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_THREE_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_THREE_T (   name,
  ExtraT 
)     template class name<panzer::Traits::Jacobian, panzer::Traits,ExtraT>;

Explicitly instantiates name<panzer::Traits::Jacobian, panzer::Traits, ExtraT>.

Parameters
namethe template class to instantiate.
ExtraTthe additional, user-supplied template argument.

Definition at line 127 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_T (   name,
  ExtraT 
)     template class name<panzer::Traits::Hessian, panzer::Traits,ExtraT>;

Explicitly instantiates name<panzer::Traits::Hessian, panzer::Traits, ExtraT>. Only defined when built with Hessian support.

Parameters
namethe template class to instantiate.
ExtraTthe additional, user-supplied template argument.

Definition at line 132 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_THREE_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_THREE_T (   name,
  ExtraT 
)
Value:
PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_THREE_T(name,ExtraT) \
PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_THREE_T(name,ExtraT) \
PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_T(name,ExtraT)
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_THREE_T(name, ExtraT)
Explicitly instantiates name<panzer::Traits::Residual, panzer::Traits, ExtraT>.

Explicitly instantiates name<EvalT, panzer::Traits, ExtraT> for every enabled evaluation type EvalT.

Parameters
namethe template class to instantiate.
ExtraTthe additional, user-supplied template argument (e.g. a specific field or algorithm tag).

Definition at line 143 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_THREE_2U_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_THREE_2U_T (   name,
  FirstExtraT,
  SecondExtraT 
)     template class name<panzer::Traits::Residual,FirstExtraT,SecondExtraT>;

Explicitly instantiates name<panzer::Traits::Residual, FirstExtraT, SecondExtraT> (no panzer::Traits argument).

Parameters
namethe template class to instantiate.
FirstExtraTfirst user-supplied template argument.
SecondExtraTsecond user-supplied template argument.

Definition at line 151 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_THREE_2U_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_THREE_2U_T (   name,
  FirstExtraT,
  SecondExtraT 
)     template class name<panzer::Traits::Tangent,FirstExtraT,SecondExtraT>;

Explicitly instantiates name<panzer::Traits::Tangent, FirstExtraT, SecondExtraT> (no panzer::Traits argument).

Parameters
namethe template class to instantiate.
FirstExtraTfirst user-supplied template argument.
SecondExtraTsecond user-supplied template argument.

Definition at line 155 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_THREE_2U_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_THREE_2U_T (   name,
  FirstExtraT,
  SecondExtraT 
)     template class name<panzer::Traits::Jacobian,FirstExtraT,SecondExtraT>;

Explicitly instantiates name<panzer::Traits::Jacobian, FirstExtraT, SecondExtraT> (no panzer::Traits argument).

Parameters
namethe template class to instantiate.
FirstExtraTfirst user-supplied template argument.
SecondExtraTsecond user-supplied template argument.

Definition at line 159 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_2U_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_2U_T (   name,
  FirstExtraT,
  SecondExtraT 
)     template class name<panzer::Traits::Hessian,FirstExtraT,SecondExtraT>;

Explicitly instantiates name<panzer::Traits::Hessian, FirstExtraT, SecondExtraT> (no panzer::Traits argument). Only defined when built with Hessian support.

Parameters
namethe template class to instantiate.
FirstExtraTfirst user-supplied template argument.
SecondExtraTsecond user-supplied template argument.

Definition at line 164 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_THREE_2U_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_THREE_2U_T (   name,
  FirstExtraT,
  SecondExtraT 
)
Value:
PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_THREE_2U_T(name,FirstExtraT,SecondExtraT) \
PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_THREE_2U_T(name,FirstExtraT,SecondExtraT)
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_THREE_2U_T(name, FirstExtraT, SecondExtraT)
Explicitly instantiates name<panzer::Traits::Residual, FirstExtraT, SecondExtraT> (no panzer::Traits ...

Explicitly instantiates name<EvalT, FirstExtraT, SecondExtraT> for every enabled evaluation type EvalT.

Unlike PANZER_INSTANTIATE_TEMPLATE_CLASS_THREE_T, panzer::Traits is not passed as a template argument here; both extra arguments are user-supplied.

Parameters
namethe template class to instantiate.
FirstExtraTfirst user-supplied template argument.
SecondExtraTsecond user-supplied template argument.

Definition at line 180 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_FOUR_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_FOUR_T (   name,
  FirstExtraT,
  SecondExtraT 
)     template class name<panzer::Traits::Residual, panzer::Traits,FirstExtraT,SecondExtraT>;

Explicitly instantiates name<panzer::Traits::Residual, panzer::Traits, FirstExtraT, SecondExtraT>.

Parameters
namethe template class to instantiate.
FirstExtraTfirst user-supplied template argument.
SecondExtraTsecond user-supplied template argument.

Definition at line 188 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_FOUR_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_FOUR_T (   name,
  FirstExtraT,
  SecondExtraT 
)     template class name<panzer::Traits::Tangent, panzer::Traits,FirstExtraT,SecondExtraT>;

Explicitly instantiates name<panzer::Traits::Tangent, panzer::Traits, FirstExtraT, SecondExtraT>.

Parameters
namethe template class to instantiate.
FirstExtraTfirst user-supplied template argument.
SecondExtraTsecond user-supplied template argument.

Definition at line 192 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_FOUR_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_FOUR_T (   name,
  FirstExtraT,
  SecondExtraT 
)     template class name<panzer::Traits::Jacobian, panzer::Traits,FirstExtraT,SecondExtraT>;

Explicitly instantiates name<panzer::Traits::Jacobian, panzer::Traits, FirstExtraT, SecondExtraT>.

Parameters
namethe template class to instantiate.
FirstExtraTfirst user-supplied template argument.
SecondExtraTsecond user-supplied template argument.

Definition at line 196 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_FOUR_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_FOUR_T (   name,
  FirstExtraT,
  SecondExtraT 
)     template class name<panzer::Traits::Hessian, panzer::Traits,FirstExtraT,SecondExtraT>;

Explicitly instantiates name<panzer::Traits::Hessian, panzer::Traits, FirstExtraT, SecondExtraT>. Only defined when built with Hessian support.

Parameters
namethe template class to instantiate.
FirstExtraTfirst user-supplied template argument.
SecondExtraTsecond user-supplied template argument.

Definition at line 201 of file Panzer_ExplicitTemplateInstantiation.hpp.

◆ PANZER_INSTANTIATE_TEMPLATE_CLASS_FOUR_T

#define PANZER_INSTANTIATE_TEMPLATE_CLASS_FOUR_T (   name,
  FirstExtraT,
  SecondExtraT 
)
Value:
PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_FOUR_T(name,FirstExtraT,SecondExtraT) \
PANZER_INSTANTIATE_TEMPLATE_CLASS_TANGENT_FOUR_T(name,FirstExtraT,SecondExtraT) \
PANZER_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN_FOUR_T(name,FirstExtraT,SecondExtraT) \
PANZER_INSTANTIATE_TEMPLATE_CLASS_HESSIAN_FOUR_T(name,FirstExtraT,SecondExtraT)
#define PANZER_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL_FOUR_T(name, FirstExtraT, SecondExtraT)
Explicitly instantiates name<panzer::Traits::Residual, panzer::Traits, FirstExtraT,...

Explicitly instantiates name<EvalT, panzer::Traits, FirstExtraT, SecondExtraT> for every enabled evaluation type EvalT.

Parameters
namethe template class to instantiate.
FirstExtraTfirst user-supplied template argument.
SecondExtraTsecond user-supplied template argument.

Definition at line 213 of file Panzer_ExplicitTemplateInstantiation.hpp.