43#ifndef __Panzer_GatherSolution_BlockedEpetra_decl_hpp__
44#define __Panzer_GatherSolution_BlockedEpetra_decl_hpp__
56#include "PanzerDiscFE_config.hpp"
61#include "Phalanx_config.hpp"
62#include "Phalanx_Evaluator_Macros.hpp"
63#include "Phalanx_MDField.hpp"
66#include "Teuchos_ParameterList.hpp"
93 template<
typename EvalT,
typename TRAITS,
typename LO,
typename GO>
97 public PHX::EvaluatorDerived<panzer::Traits::Residual, TRAITS>,
116 const Teuchos::ParameterList& p)
132 virtual Teuchos::RCP<CloneableEvaluator>
134 const Teuchos::ParameterList& pl)
const
136 return Teuchos::rcp(
new
150 typename TRAITS::SetupData d,
165 typename TRAITS::EvalData d)
170 cout <<
"Unspecialized version of \"GatherSolution_BlockedEpetra::" \
171 "evaluateFields\" on " + print<EvalT>() +
"\" should not " \
173 TEUCHOS_ASSERT(
false);
188 template<
typename TRAITS,
typename LO,
typename GO>
192 public PHX::EvaluatorDerived<panzer::Traits::Residual, TRAITS>,
206 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
226 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
228 const Teuchos::ParameterList& p);
241 typename TRAITS::SetupData d,
256 typename TRAITS::PreEvalData d);
268 typename TRAITS::EvalData d);
282 virtual Teuchos::RCP<CloneableEvaluator>
284 const Teuchos::ParameterList& pl)
const
309 std::vector<Teuchos::RCP<const GlobalIndexer>>
indexers_;
345 Teuchos::RCP<Thyra::ProductVectorBase<double>>
x_;
351 Teuchos::RCP<panzer::BlockedVector_ReadOnly_GlobalEvaluationData>
369 std::vector<std::vector<PHX::MDField<const ScalarT, Cell, NODE>>>
389 template<
typename TRAITS,
typename LO,
typename GO>
393 public PHX::EvaluatorDerived<panzer::Traits::Tangent, TRAITS>,
407 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
427 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
429 const Teuchos::ParameterList& p);
442 typename TRAITS::SetupData d,
457 typename TRAITS::PreEvalData d);
470 typename TRAITS::EvalData d);
484 virtual Teuchos::RCP<CloneableEvaluator>
486 const Teuchos::ParameterList& pl)
const
511 std::vector<Teuchos::RCP<const GlobalIndexer>>
indexers_;
547 Teuchos::RCP<Thyra::ProductVectorBase<double>>
x_;
553 Teuchos::RCP<panzer::BlockedVector_ReadOnly_GlobalEvaluationData>
571 std::vector<std::vector<PHX::MDField<const ScalarT, Cell, NODE>>>
591 template<
typename TRAITS,
typename LO,
typename GO>
595 public PHX::EvaluatorDerived<panzer::Traits::Jacobian, TRAITS>,
609 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
629 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
631 const Teuchos::ParameterList& p);
644 typename TRAITS::SetupData d,
660 typename TRAITS::PreEvalData d);
673 typename TRAITS::EvalData d);
687 virtual Teuchos::RCP<CloneableEvaluator>
689 const Teuchos::ParameterList& pl)
const
714 std::vector<Teuchos::RCP<const GlobalIndexer>>
indexers_;
773 Teuchos::RCP<Thyra::ProductVectorBase<double>>
x_;
779 Teuchos::RCP<panzer::BlockedVector_ReadOnly_GlobalEvaluationData>
791#ifdef Panzer_BUILD_HESSIAN_SUPPORT
Non-templated empty base class for template managers.
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
std::string sensitivitiesName_
Sets which gather operations have sensitivities.
bool applySensitivities_
Used by evaluateFields() to turn on/off a certain set of sensitivities.
std::vector< PHX::MDField< ScalarT, Cell, NODE > > gatherFields_
The fields to be gathered.
bool useTimeDerivativeSolutionVector_
A flag indicating whether we should be working with or .
std::vector< int > subFieldIds_
Sub-field IDs, which need to be mapped.
std::vector< int > indexerIds_
The block index into indexers_.
std::vector< std::string > indexerNames_
A list of the names of the fields to be gathered.
std::vector< Teuchos::RCP< const GlobalIndexer > > indexers_
These map the local (field, element, basis) triplet to a global ID for scattering.
GatherSolution_BlockedEpetra(const std::vector< Teuchos::RCP< const GlobalIndexer > > &indexers)
Constructor.
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Create a copy.
GatherSolution_BlockedEpetra()
Default Constructor (disabled)
Teuchos::RCP< panzer::BlockedVector_ReadOnly_GlobalEvaluationData > xBvRoGed_
The GlobalEvaluationData containing both the owned and ghosted solution vectors.
panzer::Traits::Jacobian EvalT
The evaluation type.
int gatherSeedIndex_
Which gather seed in the workset to use.
bool disableSensitivities_
Flag to disable sensitivities absolutely.
panzer::Traits::Jacobian::ScalarT ScalarT
The scalar type.
Teuchos::RCP< Thyra::ProductVectorBase< double > > x_
The solution vector.
std::string globalDataKey_
The key identifying the GlobalEvaluationData.
std::vector< std::string > indexerNames_
A list of the names of the fields to be gathered.
bool useTimeDerivativeSolutionVector_
A flag indicating whether we should be working with or .
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Create a copy.
bool hasTangentFields_
A flag indicating whether or not we have tangent fields.
std::vector< std::vector< PHX::MDField< const ScalarT, Cell, NODE > > > tangentFields_
Fields for storing the tangent components of the solution vector .
panzer::Traits::Residual::ScalarT ScalarT
The scalar type.
std::string globalDataKey_
The key identifying the GlobalEvaluationData.
Teuchos::RCP< panzer::BlockedVector_ReadOnly_GlobalEvaluationData > xBvRoGed_
The GlobalEvaluationData containing both the owned and ghosted solution vectors.
std::vector< int > subFieldIds_
Sub-field IDs, which need to be mapped.
std::vector< PHX::MDField< ScalarT, Cell, NODE > > gatherFields_
The fields to be gathered.
panzer::Traits::Residual EvalT
The evaluation type.
std::vector< Teuchos::RCP< const GlobalIndexer > > indexers_
These map the local (field, element, basis) triplet to a global ID for scattering.
std::vector< int > indexerIds_
The block index into indexers_.
GatherSolution_BlockedEpetra()
Default Constructor (disabled)
Teuchos::RCP< Thyra::ProductVectorBase< double > > x_
The solution vector.
GatherSolution_BlockedEpetra(const std::vector< Teuchos::RCP< const GlobalIndexer > > &indexers)
Constructor.
bool hasTangentFields_
A flag indicating whether or not we have tangent fields.
bool useTimeDerivativeSolutionVector_
A flag indicating whether we should be working with or .
Teuchos::RCP< Thyra::ProductVectorBase< double > > x_
The solution vector.
std::vector< int > subFieldIds_
Sub-field IDs, which need to be mapped.
std::string globalDataKey_
The key identifying the GlobalEvaluationData.
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Create a copy.
panzer::Traits::Tangent EvalT
The evaluation type.
panzer::Traits::Tangent::ScalarT ScalarT
The scalar type.
std::vector< PHX::MDField< ScalarT, Cell, NODE > > gatherFields_
The fields to be gathered.
std::vector< int > indexerIds_
The block index into indexers_.
GatherSolution_BlockedEpetra(const std::vector< Teuchos::RCP< const GlobalIndexer > > &indexers)
Constructor.
GatherSolution_BlockedEpetra()
Default Constructor (disabled)
std::vector< std::string > indexerNames_
A list of the names of the fields to be gathered.
Teuchos::RCP< panzer::BlockedVector_ReadOnly_GlobalEvaluationData > xBvRoGed_
The GlobalEvaluationData containing both the owned and ghosted solution vectors.
std::vector< std::vector< PHX::MDField< const ScalarT, Cell, NODE > > > tangentFields_
Fields for storing the tangent components of the solution vector .
std::vector< Teuchos::RCP< const GlobalIndexer > > indexers_
These map the local (field, element, basis) triplet to a global ID for scattering.
Gathers solution values from the Newton solution vector into the nodal fields of the field manager.
void evaluateFields(typename TRAITS::EvalData d)
Evaluate Fields.
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Create a copy.
EvalT::ScalarT ScalarT
The scalar type.
GatherSolution_BlockedEpetra(const Teuchos::ParameterList &p)
Constructor.
void postRegistrationSetup(typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &fm)
Post-Registration Setup.