11#ifndef PANZER_EVALUATOR_GATHER_SOLUTION_BLOCKEDTPETRA_DECL_HPP
12#define PANZER_EVALUATOR_GATHER_SOLUTION_BLOCKEDTPETRA_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"
29template <
typename ScalarT,
typename LocalOrdinalT,
typename GlobalOrdinalT,
typename NodeT>
30class BlockedTpetraLinearObjContainer;
33class BlockedDOFManager;
42template <
typename EvalT,
typename TRAITS,
typename S,
typename LO,
typename GO,
typename NodeT=panzer::TpetraNodeType>
45 public PHX::EvaluatorDerived<panzer::Traits::Residual, TRAITS>,
54 const Teuchos::ParameterList& p);
56 virtual Teuchos::RCP<CloneableEvaluator>
clone(
const Teuchos::ParameterList & pl)
const
63 { std::cout <<
"unspecialized version of \"GatherSolution_BlockedTpetra::evaluateFields\" on \""+PHX::print<EvalT>()+
"\" should not be used!" << std::endl;
64 TEUCHOS_ASSERT(
false); }
77template <
typename TRAITS,
typename S,
typename LO,
typename GO,
typename NodeT>
80 public PHX::EvaluatorDerived<panzer::Traits::Residual, TRAITS>,
87 : globalIndexer_(indexer) {}
90 const Teuchos::ParameterList& p);
95 void preEvaluate(
typename TRAITS::PreEvalData d);
99 virtual Teuchos::RCP<CloneableEvaluator>
clone(
const Teuchos::ParameterList & pl)
const
142 std::vector< std::vector< PHX::MDField<const ScalarT,Cell,NODE> > >
tangentFields_;
156template <
typename TRAITS,
typename S,
typename LO,
typename GO,
typename NodeT>
159 public PHX::EvaluatorDerived<panzer::Traits::Tangent, TRAITS>,
166 : globalIndexer_(indexer) {}
169 const Teuchos::ParameterList& p);
174 void preEvaluate(
typename TRAITS::PreEvalData d);
178 virtual Teuchos::RCP<CloneableEvaluator>
clone(
const Teuchos::ParameterList & pl)
const
221 std::vector< std::vector< PHX::MDField<const RealT,Cell,NODE> > >
tangentFields_;
230template <
typename TRAITS,
typename S,
typename LO,
typename GO,
typename NodeT>
233 public PHX::EvaluatorDerived<panzer::Traits::Jacobian, TRAITS>,
238 : globalIndexer_(indexer) {}
241 const Teuchos::ParameterList& p);
246 void preEvaluate(
typename TRAITS::PreEvalData d);
250 virtual Teuchos::RCP<CloneableEvaluator>
clone(
const Teuchos::ParameterList & pl)
const
301#ifdef Panzer_BUILD_HESSIAN_SUPPORT
Non-templated empty base class for template managers.
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
Tpetra::CrsGraph< LO, GO, NodeT > CrsGraphType
bool disableSensitivities_
panzer::Traits::Jacobian::ScalarT ScalarT
std::vector< PHX::MDField< ScalarT, Cell, NODE > > gatherFields_
std::vector< int > fieldIds_
panzer::Traits::Jacobian EvalT
GatherSolution_BlockedTpetra(const Teuchos::RCP< const BlockedDOFManager > &indexer)
std::vector< std::string > indexerNames_
Tpetra::Map< LO, GO, NodeT > MapType
BlockedTpetraLinearObjContainer< S, LO, GO, NodeT > ContainerType
std::vector< int > productVectorBlockIndex_
PHX::View< LO ** > worksetLIDs_
Local indices for unknowns.
Teuchos::RCP< const BlockedDOFManager > globalIndexer_
bool useTimeDerivativeSolutionVector_
TRAITS::RealType RealType
GatherSolution_BlockedTpetra()
Teuchos::RCP< const BlockedTpetraLinearObjContainer< S, LO, GO, NodeT > > blockedContainer_
Tpetra::Vector< S, LO, GO, NodeT > VectorType
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Tpetra::Export< LO, GO, NodeT > ExportType
Tpetra::Import< LO, GO, NodeT > ImportType
Tpetra::CrsMatrix< S, LO, GO, NodeT > CrsMatrixType
PHX::View< LO * > blockOffsets_
The offset values of the blocked DOFs per element. Size of number of blocks in the product vector + 1...
std::string globalDataKey_
std::vector< PHX::View< int * > > fieldOffsets_
Offset into the cell lids for each field. Size of number of fields to scatter.
bool useTimeDerivativeSolutionVector_
Tpetra::CrsMatrix< S, LO, GO, NodeT > CrsMatrixType
GatherSolution_BlockedTpetra()
std::vector< PHX::View< int * > > fieldOffsets_
Offset into the cell lids for each field.
std::vector< PHX::MDField< ScalarT, Cell, NODE > > gatherFields_
Teuchos::RCP< const BlockedTpetraLinearObjContainer< S, LO, GO, NodeT > > blockedContainer_
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Tpetra::CrsGraph< LO, GO, NodeT > CrsGraphType
std::string globalDataKey_
panzer::Traits::Residual::ScalarT ScalarT
panzer::Traits::Residual EvalT
std::vector< int > productVectorBlockIndex_
Teuchos::RCP< const BlockedDOFManager > globalIndexer_
Maps the local (field,element,basis) triplet to a global ID for.
Tpetra::Import< LO, GO, NodeT > ImportType
std::vector< std::string > indexerNames_
GatherSolution_BlockedTpetra(const Teuchos::RCP< const BlockedDOFManager > &indexer)
std::vector< std::vector< PHX::MDField< const ScalarT, Cell, NODE > > > tangentFields_
Tpetra::Export< LO, GO, NodeT > ExportType
Tpetra::Map< LO, GO, NodeT > MapType
BlockedTpetraLinearObjContainer< S, LO, GO, NodeT > ContainerType
std::vector< Teuchos::RCP< const panzer::GlobalIndexer > > fieldGlobalIndexers_
Vector of global indexers, one for each field to gather, respectively.
std::vector< int > fieldIds_
Field IDs in the local product vector block (not global field id)
PHX::View< LO ** > worksetLIDs_
Local indices for unknowns.
Tpetra::Vector< S, LO, GO, NodeT > VectorType
Tpetra::Import< LO, GO, NodeT > ImportType
Tpetra::Export< LO, GO, NodeT > ExportType
BlockedTpetraLinearObjContainer< S, LO, GO, NodeT > ContainerType
std::vector< PHX::View< int * > > fieldOffsets_
Offset into the cell lids for each field. Size of number of fields to scatter.
GatherSolution_BlockedTpetra(const Teuchos::RCP< const BlockedDOFManager > &indexer)
GatherSolution_BlockedTpetra()
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Teuchos::RCP< const BlockedTpetraLinearObjContainer< S, LO, GO, NodeT > > blockedContainer_
Tpetra::CrsMatrix< S, LO, GO, NodeT > CrsMatrixType
panzer::Traits::Tangent EvalT
Tpetra::Map< LO, GO, NodeT > MapType
PHX::ViewOfViews< 2, PHX::View< const RealT ** > > tangentFieldsVoV_
std::vector< int > productVectorBlockIndex_
Teuchos::RCP< const BlockedDOFManager > globalIndexer_
std::vector< std::string > indexerNames_
std::vector< PHX::MDField< ScalarT, Cell, NODE > > gatherFields_
bool useTimeDerivativeSolutionVector_
std::string globalDataKey_
PHX::View< LO ** > worksetLIDs_
Local indices for unknowns.
std::vector< std::vector< PHX::MDField< const RealT, Cell, NODE > > > tangentFields_
Tpetra::Vector< S, LO, GO, NodeT > VectorType
panzer::Traits::Tangent::ScalarT ScalarT
std::vector< int > fieldIds_
panzer::Traits::RealType RealT
Tpetra::CrsGraph< LO, GO, NodeT > CrsGraphType
Gathers solution values from the Newton solution vector into the nodal fields of the field manager.
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
void postRegistrationSetup(typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &vm)
void evaluateFields(typename TRAITS::EvalData d)
GatherSolution_BlockedTpetra(const Teuchos::RCP< const BlockedDOFManager > &indexer)
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),...
double RealType
Scalar type used for the Residual evaluation type (plain double).