44#include "Teuchos_Assert.hpp"
45#include "Teuchos_ParameterList.hpp"
49#undef PANZER_DECLARE_EQSET_TEMPLATE_BUILDER
50#define PANZER_DECLARE_EQSET_TEMPLATE_BUILDER(fClass, fType) \
52 struct fType ## _TemplateBuilder \
54 const Teuchos::RCP<Teuchos::ParameterList> m_params; \
55 const int m_default_integration_order; \
56 const panzer::CellData& m_cell_data; \
57 const Teuchos::RCP<panzer::GlobalData> m_global_data; \
58 const bool m_build_transient_support; \
59 fType ## _TemplateBuilder( \
60 const Teuchos::RCP<Teuchos::ParameterList>& params, \
61 const int default_integration_order, \
62 const panzer::CellData& cd, \
63 const Teuchos::RCP<panzer::GlobalData>& global_data, \
64 const bool build_transient_support) \
67 m_default_integration_order(default_integration_order), \
69 m_global_data(global_data), \
70 m_build_transient_support(build_transient_support) \
74 template<typename EvalT> \
75 Teuchos::RCP<panzer::EquationSetBase> build() const \
77 fClass<EvalT>* ptr = new fClass<EvalT>(m_params, \
78 m_default_integration_order, m_cell_data, m_global_data, \
79 m_build_transient_support); \
80 return Teuchos::rcp(ptr); \
85#undef PANZER_BUILD_EQSET_OBJECTS
86#define PANZER_BUILD_EQSET_OBJECTS(key, fType) \
87 if (params->get<std::string>("Type") == key) \
89 fType ## _TemplateBuilder builder(params, default_integration_order, \
90 cell_data, global_data, build_transient_support); \
91 eq_set->buildObjects(builder); \