Panzer Version of the Day
Loading...
Searching...
No Matches
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
35namespace panzer
36{
37 class GlobalIndexer;
38}
39
40namespace 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
76 const Teuchos::RCP<const panzer::GlobalIndexer>& indexer)
77 :
78 globalIndexer_(indexer)
79 {
80 } // end of Constructor
81
93 const Teuchos::RCP<const panzer::GlobalIndexer>& indexer,
94 const Teuchos::ParameterList& p);
95
104 void
106 typename TRAITS::SetupData d,
108
118 void
120 typename TRAITS::PreEvalData d);
121
130 void
132 typename TRAITS::EvalData d);
133
145 virtual Teuchos::RCP<CloneableEvaluator>
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
165 Teuchos::RCP<const panzer::GlobalIndexer> globalIndexer_;
166
170 std::vector<int> fieldIds_;
171
175 std::vector<PHX::MDField<ScalarT, Cell, NODE>> gatherFields_;
176
180 Teuchos::RCP<std::vector<std::string>> indexerNames_;
181
187
191 std::string globalDataKey_;
192
197 Teuchos::RCP<panzer::EpetraVector_ReadOnly_GlobalEvaluationData>
199
204
205 }; // end of class GatherTangent_Epetra
206
207} // end of namespace panzer
208
209#endif // __Panzer_GatherTangent_Epetra_decl_hpp__
Non-templated empty base class for template managers.
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
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.
GatherTangent_Epetra()
Default Constructor (disabled).
std::vector< int > fieldIds_
Field IDs, which need to be mapped.
void postRegistrationSetup(typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &fm)
Post-Registration Setup.
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.
void evaluateFields(typename TRAITS::EvalData d)
Evaluate Fields: Gather operation.
GatherTangent_Epetra(const Teuchos::RCP< const panzer::GlobalIndexer > &indexer)
Constructor.
Teuchos::RCP< std::vector< std::string > > indexerNames_
A list of the names of the fields to be gathered.
std::vector< PHX::MDField< ScalarT, Cell, NODE > > gatherFields_
The fields to be gathered.
void preEvaluate(typename TRAITS::PreEvalData d)
Pre-Evaluate: Sets the tangent vector.
Teuchos::RCP< const panzer::GlobalIndexer > globalIndexer_
Maps the local (field, element, basis) triplet to a global ID for scattering.