Panzer Version of the Day
Loading...
Searching...
No Matches
Panzer_AssemblyEngine_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_ASSEMBLY_ENGINE_TEMPLATE_BUILDER_HPP
12#define PANZER_ASSEMBLY_ENGINE_TEMPLATE_BUILDER_HPP
13
14#include <string>
15#include "Sacado_mpl_apply.hpp"
16#include "Teuchos_RCP.hpp"
19#include "Panzer_Traits.hpp"
21
22namespace panzer {
23
30
31 Teuchos::RCP<panzer::FieldManagerBuilder> m_fmb;
32 Teuchos::RCP<const panzer::LinearObjFactory<panzer::Traits> > m_lof;
33
34 public:
35
37 AssemblyEngine_TemplateBuilder(const Teuchos::RCP<panzer::FieldManagerBuilder>& fmb,
38 const Teuchos::RCP<const panzer::LinearObjFactory<panzer::Traits> > & lof) :
39 m_fmb(fmb), m_lof(lof)
40 {}
41
43 template <typename EvalT>
44 Teuchos::RCP<panzer::Base> build() const {
45 return Teuchos::rcp( static_cast<panzer::Base*>
47 }
48
49 };
50
51}
52
53#endif
Builder functor used with Sacado::mpl::TemplateManager to construct one panzer::AssemblyEngine<EvalT>...
Teuchos::RCP< const panzer::LinearObjFactory< panzer::Traits > > m_lof
AssemblyEngine_TemplateBuilder(const Teuchos::RCP< panzer::FieldManagerBuilder > &fmb, const Teuchos::RCP< const panzer::LinearObjFactory< panzer::Traits > > &lof)
Construct from the field manager builder and linear object factory to share across all built Assembly...
Teuchos::RCP< panzer::Base > build() const
Constructs a panzer::AssemblyEngine<EvalT> for the given evaluation type.
Teuchos::RCP< panzer::FieldManagerBuilder > m_fmb
Class for the matrix and residual fill.
Non-templated empty base class for template managers.