Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Panzer_GatherTangent_Epetra_decl.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Panzer: A partial differential equation assembly
4 // engine for strongly coupled complex multiphysics systems
5 //
6 // Copyright 2011 NTESS and the Panzer contributors.
7 // SPDX-License-Identifier: BSD-3-Clause
8 // *****************************************************************************
9 // @HEADER
10 
11 #ifndef __Panzer_GatherTangent_Epetra_decl_hpp__
12 #define __Panzer_GatherTangent_Epetra_decl_hpp__
13 
15 //
16 // Include Files
17 //
19 
20 // Panzer
24 
25 // Phalanx
26 #include "Phalanx_Evaluator_Macros.hpp"
27 #include "Phalanx_MDField.hpp"
28 
30 //
31 // Forward Declarations
32 //
34 
35 namespace panzer
36 {
37  class GlobalIndexer;
38 }
39 
40 namespace panzer
41 {
58  template<typename EvalT, typename TRAITS, typename LO, typename GO>
60  :
61  public panzer::EvaluatorWithBaseImpl<TRAITS>,
62  public PHX::EvaluatorDerived<EvalT, TRAITS>,
64  {
65  public:
66 
77  :
78  globalIndexer_(indexer)
79  {
80  } // end of Constructor
81 
94  const Teuchos::ParameterList& p);
95 
104  void
106  typename TRAITS::SetupData d,
108 
118  void
119  preEvaluate(
120  typename TRAITS::PreEvalData d);
121 
130  void
132  typename TRAITS::EvalData d);
133 
147  const Teuchos::ParameterList& pl) const
148  {
149  using Teuchos::rcp;
150  return rcp(new
152  } // end of clone()
153 
154  private:
155 
159  typedef typename EvalT::ScalarT ScalarT;
160 
166 
170  std::vector<int> fieldIds_;
171 
175  std::vector<PHX::MDField<ScalarT, Cell, NODE>> gatherFields_;
176 
181 
187 
191  std::string globalDataKey_;
192 
199 
204 
205  }; // end of class GatherTangent_Epetra
206 
207 } // end of namespace panzer
208 
209 #endif // __Panzer_GatherTangent_Epetra_decl_hpp__
GatherTangent_Epetra(const Teuchos::RCP< const panzer::GlobalIndexer > &indexer)
Constructor.
std::vector< PHX::MDField< ScalarT, Cell, NODE > > gatherFields_
The fields to be gathered.
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Create a copy.
std::string globalDataKey_
The key identifying the GlobalEvaluationData.
Teuchos::RCP< panzer::EpetraVector_ReadOnly_GlobalEvaluationData > dxdpEvRoGed_
The GlobalEvaluationData containing both the owned and ghosted tangent vectors.
Teuchos::RCP< std::vector< std::string > > indexerNames_
A list of the names of the fields to be gathered.
GatherTangent_Epetra()
Default Constructor (disabled).
Teuchos::RCP< const panzer::GlobalIndexer > globalIndexer_
Maps the local (field, element, basis) triplet to a global ID for scattering.
void postRegistrationSetup(typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &fm)
Post-Registration Setup.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
std::vector< int > fieldIds_
Field IDs, which need to be mapped.
void preEvaluate(typename TRAITS::PreEvalData d)
Pre-Evaluate: Sets the tangent vector.
Non-templated empty base class for template managers.
void evaluateFields(typename TRAITS::EvalData d)
Evaluate Fields: Gather operation.
bool useTimeDerivativeSolutionVector_
A flag indicating whether we should be working with or .