11#ifndef __Panzer_GatherSolution_BlockedEpetra_decl_hpp__
12#define __Panzer_GatherSolution_BlockedEpetra_decl_hpp__
24#include "PanzerDiscFE_config.hpp"
29#include "Phalanx_config.hpp"
30#include "Phalanx_Evaluator_Macros.hpp"
31#include "Phalanx_MDField.hpp"
34#include "Teuchos_ParameterList.hpp"
61 template<
typename EvalT,
typename TRAITS,
typename LO,
typename GO>
65 public PHX::EvaluatorDerived<panzer::Traits::Residual, TRAITS>,
84 const Teuchos::ParameterList& p)
100 virtual Teuchos::RCP<CloneableEvaluator>
102 const Teuchos::ParameterList& pl)
const
104 return Teuchos::rcp(
new
118 typename TRAITS::SetupData d,
133 typename TRAITS::EvalData d)
138 cout <<
"Unspecialized version of \"GatherSolution_BlockedEpetra::" \
139 "evaluateFields\" on " + print<EvalT>() +
"\" should not " \
141 TEUCHOS_ASSERT(
false);
156 template<
typename TRAITS,
typename LO,
typename GO>
160 public PHX::EvaluatorDerived<panzer::Traits::Residual, TRAITS>,
174 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
194 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
196 const Teuchos::ParameterList& p);
209 typename TRAITS::SetupData d,
224 typename TRAITS::PreEvalData d);
236 typename TRAITS::EvalData d);
250 virtual Teuchos::RCP<CloneableEvaluator>
252 const Teuchos::ParameterList& pl)
const
277 std::vector<Teuchos::RCP<const GlobalIndexer>>
indexers_;
313 Teuchos::RCP<Thyra::ProductVectorBase<double>>
x_;
319 Teuchos::RCP<panzer::BlockedVector_ReadOnly_GlobalEvaluationData>
337 std::vector<std::vector<PHX::MDField<const ScalarT, Cell, NODE>>>
357 template<
typename TRAITS,
typename LO,
typename GO>
361 public PHX::EvaluatorDerived<panzer::Traits::Tangent, TRAITS>,
375 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
395 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
397 const Teuchos::ParameterList& p);
410 typename TRAITS::SetupData d,
425 typename TRAITS::PreEvalData d);
438 typename TRAITS::EvalData d);
452 virtual Teuchos::RCP<CloneableEvaluator>
454 const Teuchos::ParameterList& pl)
const
479 std::vector<Teuchos::RCP<const GlobalIndexer>>
indexers_;
515 Teuchos::RCP<Thyra::ProductVectorBase<double>>
x_;
521 Teuchos::RCP<panzer::BlockedVector_ReadOnly_GlobalEvaluationData>
539 std::vector<std::vector<PHX::MDField<const ScalarT, Cell, NODE>>>
559 template<
typename TRAITS,
typename LO,
typename GO>
563 public PHX::EvaluatorDerived<panzer::Traits::Jacobian, TRAITS>,
577 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
597 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
599 const Teuchos::ParameterList& p);
612 typename TRAITS::SetupData d,
628 typename TRAITS::PreEvalData d);
641 typename TRAITS::EvalData d);
655 virtual Teuchos::RCP<CloneableEvaluator>
657 const Teuchos::ParameterList& pl)
const
682 std::vector<Teuchos::RCP<const GlobalIndexer>>
indexers_;
741 Teuchos::RCP<Thyra::ProductVectorBase<double>>
x_;
747 Teuchos::RCP<panzer::BlockedVector_ReadOnly_GlobalEvaluationData>
759#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.