43 #ifndef __Panzer_LinearObjFactory_hpp__
44 #define __Panzer_LinearObjFactory_hpp__
53 #include "Phalanx_Evaluator.hpp"
54 #include "Phalanx_Evaluator_Derived.hpp"
55 #include "Phalanx_TemplateManager.hpp"
58 #include "Teuchos_DefaultMpiComm.hpp"
65 class UniqueGlobalIndexerBase;
102 template <
typename Traits>
122 template <
typename BuilderT>
229 bool zeroVectorRows=
false,
bool adjustX=
false)
const = 0;
247 template <
typename EvalT>
248 Teuchos::RCP<PHX::Evaluator<Traits> >
buildScatter(
const Teuchos::ParameterList & pl)
const
249 {
return Teuchos::rcp_dynamic_cast<PHX::Evaluator<Traits> >(
scatterManager_->template getAsBase<EvalT>()->clone(pl)); }
252 template <
typename EvalT>
253 Teuchos::RCP<PHX::Evaluator<Traits> >
buildGather(
const Teuchos::ParameterList & pl)
const
254 {
return Teuchos::rcp_dynamic_cast<PHX::Evaluator<Traits> >(
gatherManager_->template getAsBase<EvalT>()->clone(pl)); }
257 template <
typename EvalT>
259 {
return Teuchos::rcp_dynamic_cast<PHX::Evaluator<Traits> >(
gatherTangentManager_->template getAsBase<EvalT>()->clone(pl)); }
262 template <
typename EvalT>
263 Teuchos::RCP<PHX::Evaluator<Traits> >
buildGatherDomain(
const Teuchos::ParameterList & pl)
const
264 {
return Teuchos::rcp_dynamic_cast<PHX::Evaluator<Traits> >(
gatherDomainManager_->template getAsBase<EvalT>()->clone(pl)); }
267 template <
typename EvalT>
269 {
return Teuchos::rcp_dynamic_cast<PHX::Evaluator<Traits> >(
gatherOrientManager_->template getAsBase<EvalT>()->clone(pl)); }
272 template <
typename EvalT>
274 {
return Teuchos::rcp_dynamic_cast<PHX::Evaluator<Traits> >(
scatterDirichletManager_->template getAsBase<EvalT>()->clone(pl)); }
292 PHX::EvaluatorDerived<_,Traits> >
303 template <
typename BuilderT>
310 template <
typename EvalT> Teuchos::RCP<panzer::CloneableEvaluator>
build()
const
311 {
return builder_->template buildScatter<EvalT>(); }
314 template <
typename BuilderT>
321 template <
typename EvalT> Teuchos::RCP<panzer::CloneableEvaluator>
build()
const
322 {
return builder_->template buildScatterDirichlet<EvalT>(); }
325 template <
typename BuilderT>
332 template <
typename EvalT> Teuchos::RCP<panzer::CloneableEvaluator>
build()
const
333 {
return builder_->template buildGather<EvalT>(); }
336 template <
typename BuilderT>
343 template <
typename EvalT> Teuchos::RCP<panzer::CloneableEvaluator>
build()
const
344 {
return builder_->template buildGatherTangent<EvalT>(); }
347 template <
typename BuilderT>
354 template <
typename EvalT> Teuchos::RCP<panzer::CloneableEvaluator>
build()
const
355 {
return builder_->template buildGatherDomain<EvalT>(); }
358 template <
typename BuilderT>
365 template <
typename EvalT> Teuchos::RCP<panzer::CloneableEvaluator>
build()
const
366 {
return builder_->template buildGatherOrientation<EvalT>(); }
370 template<
typename Traits>
371 template <
typename BuilderT>
376 using Teuchos::rcpFromRef;
399 #endif // __Panzer_LinearObjFactory_hpp__