Panzer Version of the Day
Loading...
Searching...
No Matches
Panzer_ClosureModel_Factory_Composite_TemplateBuilder.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_CLOSURE_MODEL_FACTORY_COMPOSITE_TEMPLATE_BUILDER_HPP
12#define PANZER_CLOSURE_MODEL_FACTORY_COMPOSITE_TEMPLATE_BUILDER_HPP
13
14#include <string>
15#include "Sacado_mpl_apply.hpp"
16#include "Teuchos_RCP.hpp"
17#include "Panzer_ClosureModel_Factory_Composite.hpp"
18
19namespace panzer {
20
27
28 std::vector<Teuchos::RCP<panzer::ClosureModelFactory_TemplateManager<panzer::Traits> > > m_factories;
29
30 public:
31
33 template <typename EvalT>
34 Teuchos::RCP<panzer::ClosureModelFactoryBase> build() const {
35 return Teuchos::rcp( static_cast<panzer::ClosureModelFactoryBase*>
37 }
38
41 {
42 m_factories.push_back(factory);
43 }
44
45 };
46
47}
48
49#endif
A PHX::TemplateManager holding one panzer::ClosureModelFactory<EvalT> per evaluation type in Traits::...
Builder functor used with Sacado::mpl::TemplateManager to construct one panzer::ClosureModelFactoryCo...
void addFactory(const Teuchos::RCP< panzer::ClosureModelFactory_TemplateManager< panzer::Traits > > &factory)
Adds a constituent factory that built composites will delegate to.
std::vector< Teuchos::RCP< panzer::ClosureModelFactory_TemplateManager< panzer::Traits > > > m_factories
Teuchos::RCP< panzer::ClosureModelFactoryBase > build() const
Constructs a panzer::ClosureModelFactoryComposite<EvalT> for the given evaluation type.
A panzer::ClosureModelFactory that delegates to a list of other user defined, internally owned closur...