Panzer Version of the Day
Loading...
Searching...
No Matches
Panzer_GatherSolution_BlockedEpetra_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_GatherSolution_BlockedEpetra_decl_hpp__
12#define __Panzer_GatherSolution_BlockedEpetra_decl_hpp__
13
15//
16// Include Files
17//
19
20// Panzer
23#include "Panzer_Dimension.hpp"
24#include "PanzerDiscFE_config.hpp"
26#include "Panzer_Traits.hpp"
27
28// Phalanx
29#include "Phalanx_config.hpp"
30#include "Phalanx_Evaluator_Macros.hpp"
31#include "Phalanx_MDField.hpp"
32
33// Teuchos
34#include "Teuchos_ParameterList.hpp"
35
37//
38// Forward Declarations
39//
41
42namespace panzer
43{
44 class GlobalIndexer;
45}
46namespace Thyra
47{
48 template<typename> class ProductVectorBase;
49}
50
51namespace panzer
52{
61 template<typename EvalT, typename TRAITS, typename LO, typename GO>
63 :
64 public panzer::EvaluatorWithBaseImpl<TRAITS>,
65 public PHX::EvaluatorDerived<panzer::Traits::Residual, TRAITS>,
67 {
68 public:
69
73 typedef typename EvalT::ScalarT ScalarT;
74
84 const Teuchos::ParameterList& p)
85 {
86 } // end of Constructor
87
100 virtual Teuchos::RCP<CloneableEvaluator>
102 const Teuchos::ParameterList& pl) const
103 {
104 return Teuchos::rcp(new
106 } // end of clone()
107
116 void
118 typename TRAITS::SetupData d,
120 {
121 } // end of postRegistrationSetup()
122
131 void
133 typename TRAITS::EvalData d)
134 {
135 using PHX::print;
136 using std::cout;
137 using std::endl;
138 cout << "Unspecialized version of \"GatherSolution_BlockedEpetra::" \
139 "evaluateFields\" on " + print<EvalT>() + "\" should not " \
140 "be used!" << endl;
141 TEUCHOS_ASSERT(false);
142 } // end of evaluateFields()
143
144 }; // end of class GatherSolution_BlockedEpetra
145
156 template<typename TRAITS, typename LO, typename GO>
158 :
159 public panzer::EvaluatorWithBaseImpl<TRAITS>,
160 public PHX::EvaluatorDerived<panzer::Traits::Residual, TRAITS>,
162 {
163 public:
164
174 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
175 indexers)
176 :
177 indexers_(indexers)
178 {
179 } // end of Constructor
180
194 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
195 indexers,
196 const Teuchos::ParameterList& p);
197
207 void
209 typename TRAITS::SetupData d,
211
222 void
223 preEvaluate(
224 typename TRAITS::PreEvalData d);
225
234 void
236 typename TRAITS::EvalData d);
237
250 virtual Teuchos::RCP<CloneableEvaluator>
252 const Teuchos::ParameterList& pl) const
253 {
254 using panzer::Traits;
255 using Teuchos::rcp;
256 return rcp(new
258 (indexers_, pl));
259 } // end of clone()
260
261 private:
262
267
272
277 std::vector<Teuchos::RCP<const GlobalIndexer>> indexers_;
278
282 std::vector<int> indexerIds_;
283
287 std::vector<int> subFieldIds_;
288
292 std::vector<PHX::MDField<ScalarT, Cell, NODE>> gatherFields_;
293
297 std::vector<std::string> indexerNames_;
298
304
308 std::string globalDataKey_;
309
313 Teuchos::RCP<Thyra::ProductVectorBase<double>> x_;
314
319 Teuchos::RCP<panzer::BlockedVector_ReadOnly_GlobalEvaluationData>
321
326
337 std::vector<std::vector<PHX::MDField<const ScalarT, Cell, NODE>>>
339
344
345 }; // end of class GatherSolution_BlockedEpetra (Residual Specialization)
346
357 template<typename TRAITS, typename LO, typename GO>
359 :
360 public panzer::EvaluatorWithBaseImpl<TRAITS>,
361 public PHX::EvaluatorDerived<panzer::Traits::Tangent, TRAITS>,
363 {
364 public:
365
375 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
376 indexers)
377 :
378 indexers_(indexers)
379 {
380 } // end of Constructor
381
395 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
396 indexers,
397 const Teuchos::ParameterList& p);
398
408 void
410 typename TRAITS::SetupData d,
412
423 void
424 preEvaluate(
425 typename TRAITS::PreEvalData d);
426
436 void
438 typename TRAITS::EvalData d);
439
452 virtual Teuchos::RCP<CloneableEvaluator>
454 const Teuchos::ParameterList& pl) const
455 {
456 using panzer::Traits;
457 using Teuchos::rcp;
458 return rcp(new
460 (indexers_, pl));
461 } // end of clone()
462
463 private:
464
469
474
479 std::vector<Teuchos::RCP<const GlobalIndexer>> indexers_;
480
484 std::vector<int> indexerIds_;
485
489 std::vector<int> subFieldIds_;
490
494 std::vector<PHX::MDField<ScalarT, Cell, NODE>> gatherFields_;
495
499 std::vector<std::string> indexerNames_;
500
506
510 std::string globalDataKey_;
511
515 Teuchos::RCP<Thyra::ProductVectorBase<double>> x_;
516
521 Teuchos::RCP<panzer::BlockedVector_ReadOnly_GlobalEvaluationData>
523
528
539 std::vector<std::vector<PHX::MDField<const ScalarT, Cell, NODE>>>
541
546
547 }; // end of class GatherSolution_BlockedEpetra (Tangent Specialization)
548
559 template<typename TRAITS, typename LO, typename GO>
561 :
562 public panzer::EvaluatorWithBaseImpl<TRAITS>,
563 public PHX::EvaluatorDerived<panzer::Traits::Jacobian, TRAITS>,
565 {
566 public:
567
577 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
578 indexers)
579 :
580 indexers_(indexers)
581 {
582 } // end of Constructor
583
597 const std::vector<Teuchos::RCP<const GlobalIndexer>>&
598 indexers,
599 const Teuchos::ParameterList& p);
600
610 void
612 typename TRAITS::SetupData d,
614
626 void
627 preEvaluate(
628 typename TRAITS::PreEvalData d);
629
639 void
641 typename TRAITS::EvalData d);
642
655 virtual Teuchos::RCP<CloneableEvaluator>
657 const Teuchos::ParameterList& pl) const
658 {
659 using panzer::Traits;
660 using Teuchos::rcp;
661 return rcp(new
663 (indexers_, pl));
664 } // end of clone()
665
666 private:
667
672
677
682 std::vector<Teuchos::RCP<const GlobalIndexer>> indexers_;
683
687 std::vector<int> indexerIds_;
688
692 std::vector<int> subFieldIds_;
693
697 std::vector<PHX::MDField<ScalarT, Cell, NODE>> gatherFields_;
698
702 std::vector<std::string> indexerNames_;
703
709
714
719
725
729 std::string globalDataKey_;
730
737
741 Teuchos::RCP<Thyra::ProductVectorBase<double>> x_;
742
747 Teuchos::RCP<panzer::BlockedVector_ReadOnly_GlobalEvaluationData>
749
754
755 }; // end of class GatherSolution_BlockedEpetra (Jacobian Specialization)
756
757} // end of namespace panzer
758
759#ifdef Panzer_BUILD_HESSIAN_SUPPORT
761#endif // Panzer_BUILD_HESSIAN_SUPPORT
762
763#endif // __Panzer_GatherSolution_BlockedEpetra_decl_hpp__
Non-templated empty base class for template managers.
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
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.
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.
Teuchos::RCP< panzer::BlockedVector_ReadOnly_GlobalEvaluationData > xBvRoGed_
The GlobalEvaluationData containing both the owned and ghosted solution vectors.
std::vector< std::string > indexerNames_
A list of the names of the fields to be gathered.
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Create a copy.
std::vector< std::vector< PHX::MDField< const ScalarT, Cell, NODE > > > tangentFields_
Fields for storing the tangent components of the solution vector .
Teuchos::RCP< panzer::BlockedVector_ReadOnly_GlobalEvaluationData > xBvRoGed_
The GlobalEvaluationData containing both the owned and ghosted solution vectors.
std::vector< PHX::MDField< ScalarT, Cell, NODE > > gatherFields_
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.
std::vector< PHX::MDField< ScalarT, Cell, NODE > > gatherFields_
The fields to be gathered.
GatherSolution_BlockedEpetra(const std::vector< Teuchos::RCP< const GlobalIndexer > > &indexers)
Constructor.
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.
GatherSolution_BlockedEpetra(const Teuchos::ParameterList &p)
Constructor.
void postRegistrationSetup(typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &fm)
Post-Registration Setup.