11#ifndef PANZER_EVALUATOR_SCATTER_RESIDUAL_EPETRA_DECL_HPP
12#define PANZER_EVALUATOR_SCATTER_RESIDUAL_EPETRA_DECL_HPP
14#include "Phalanx_config.hpp"
15#include "Phalanx_Evaluator_Macros.hpp"
16#include "Phalanx_MDField.hpp"
18#include "Teuchos_ParameterList.hpp"
20#include "PanzerDiscFE_config.hpp"
31class EpetraLinearObjContainer;
64template<
typename TRAITS,
typename LO,
typename GO>
67 public PHX::EvaluatorDerived<panzer::Traits::Residual, TRAITS>,
72 const Teuchos::RCP<const panzer::GlobalIndexer> & ,
73 bool useDiscreteAdjoint=
false)
74 : globalIndexer_(indexer),useDiscreteAdjoint_(useDiscreteAdjoint) {}
77 const Teuchos::RCP<const panzer::GlobalIndexer> & cIndexer,
78 const Teuchos::ParameterList& p,
bool=
false);
80 void postRegistrationSetup(
typename TRAITS::SetupData d,
83 void preEvaluate(
typename TRAITS::PreEvalData d);
85 void evaluateFields(
typename TRAITS::EvalData workset);
87 virtual Teuchos::RCP<CloneableEvaluator>
clone(
const Teuchos::ParameterList & pl)
const
108 Teuchos::RCP<const std::map<std::string,std::string> >
fieldMap_;
120template<
typename TRAITS,
typename LO,
typename GO>
123 public PHX::EvaluatorDerived<panzer::Traits::Tangent, TRAITS>,
128 const Teuchos::RCP<const panzer::GlobalIndexer> & ,
129 bool useDiscreteAdjoint=
false)
130 : globalIndexer_(indexer),useDiscreteAdjoint_(useDiscreteAdjoint) {}
133 const Teuchos::RCP<const panzer::GlobalIndexer> & cIndexer,
134 const Teuchos::ParameterList& p,
bool=
false);
136 void postRegistrationSetup(
typename TRAITS::SetupData d,
139 void preEvaluate(
typename TRAITS::PreEvalData d);
141 void evaluateFields(
typename TRAITS::EvalData workset);
143 virtual Teuchos::RCP<CloneableEvaluator>
clone(
const Teuchos::ParameterList & pl)
const
164 Teuchos::RCP<const std::map<std::string,std::string> >
fieldMap_;
174template<
typename TRAITS,
typename LO,
typename GO>
177 public PHX::EvaluatorDerived<panzer::Traits::Jacobian, TRAITS>,
183 const Teuchos::RCP<const panzer::GlobalIndexer> & cIndexer=Teuchos::null,
184 bool useDiscreteAdjoint=
false)
185 : globalIndexer_(indexer), colGlobalIndexer_(cIndexer), useDiscreteAdjoint_(useDiscreteAdjoint) {}
188 const Teuchos::RCP<const panzer::GlobalIndexer> & cIndexer,
189 const Teuchos::ParameterList& pl,
bool useDiscreteAdjoint=
false);
191 void postRegistrationSetup(
typename TRAITS::SetupData d,
194 void preEvaluate(
typename TRAITS::PreEvalData d);
196 void evaluateFields(
typename TRAITS::EvalData workset);
198 virtual Teuchos::RCP<CloneableEvaluator>
clone(
const Teuchos::ParameterList & pl)
const
220 Teuchos::RCP<const std::map<std::string,std::string> >
fieldMap_;
235#ifdef Panzer_BUILD_HESSIAN_SUPPORT
Non-templated empty base class for template managers.
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
std::vector< int > fieldIds_
std::vector< PHX::MDField< const ScalarT, Cell, NODE > > scatterFields_
ScatterResidual_Epetra(const Teuchos::RCP< const panzer::GlobalIndexer > &indexer, const Teuchos::RCP< const panzer::GlobalIndexer > &cIndexer=Teuchos::null, bool useDiscreteAdjoint=false)
Teuchos::RCP< const panzer::GlobalIndexer > colGlobalIndexer_
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
ScatterResidual_Epetra(const Teuchos::RCP< const panzer::GlobalIndexer > &indexer, const Teuchos::RCP< const panzer::GlobalIndexer > &cIndexer, const Teuchos::ParameterList &pl, bool useDiscreteAdjoint=false)
Teuchos::RCP< const std::map< std::string, std::string > > fieldMap_
Teuchos::RCP< PHX::FieldTag > scatterHolder_
Teuchos::RCP< const EpetraLinearObjContainer > epetraContainer_
std::string globalDataKey_
panzer::Traits::Jacobian::ScalarT ScalarT
Teuchos::RCP< PHX::FieldTag > scatterHolder_
std::vector< int > fieldIds_
Teuchos::RCP< const panzer::GlobalIndexer > globalIndexer_
std::string globalDataKey_
std::vector< PHX::MDField< const ScalarT, Cell, NODE > > scatterFields_
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
ScatterResidual_Epetra(const Teuchos::RCP< const panzer::GlobalIndexer > &indexer, const Teuchos::RCP< const panzer::GlobalIndexer > &, bool useDiscreteAdjoint=false)
Teuchos::RCP< const std::map< std::string, std::string > > fieldMap_
panzer::Traits::Residual::ScalarT ScalarT
Teuchos::RCP< const EpetraLinearObjContainer > epetraContainer_
std::vector< Teuchos::RCP< Epetra_Vector > > dfdp_vectors_
ScatterResidual_Epetra(const Teuchos::RCP< const panzer::GlobalIndexer > &indexer, const Teuchos::RCP< const panzer::GlobalIndexer > &, bool useDiscreteAdjoint=false)
Teuchos::RCP< const std::map< std::string, std::string > > fieldMap_
panzer::Traits::Tangent::ScalarT ScalarT
std::vector< PHX::MDField< const ScalarT, Cell, NODE > > scatterFields_
Teuchos::RCP< const panzer::GlobalIndexer > globalIndexer_
std::vector< int > fieldIds_
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Teuchos::RCP< PHX::FieldTag > scatterHolder_
Pushes residual values into the residual vector for a Newton-based solve.
Evaluation type for computing the residual and its Jacobian, using FadType as the scalar type.
Evaluation type for computing the residual only, using RealType as the scalar type.
Evaluation type for computing directional derivatives (e.g. parameter sensitivities),...