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.
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),...
Panzer's specialization of the Phalanx traits class.