Panzer
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
disc-fe
src
evaluators
Panzer_GatherTangent_Epetra_decl.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ***********************************************************************
3
//
4
// Panzer: A partial differential equation assembly
5
// engine for strongly coupled complex multiphysics systems
6
// Copyright (2011) Sandia Corporation
7
//
8
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9
// the U.S. Government retains certain rights in this software.
10
//
11
// Redistribution and use in source and binary forms, with or without
12
// modification, are permitted provided that the following conditions are
13
// met:
14
//
15
// 1. Redistributions of source code must retain the above copyright
16
// notice, this list of conditions and the following disclaimer.
17
//
18
// 2. Redistributions in binary form must reproduce the above copyright
19
// notice, this list of conditions and the following disclaimer in the
20
// documentation and/or other materials provided with the distribution.
21
//
22
// 3. Neither the name of the Corporation nor the names of the
23
// contributors may be used to endorse or promote products derived from
24
// this software without specific prior written permission.
25
//
26
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
//
38
// Questions? Contact Roger P. Pawlowski (rppawlo@sandia.gov) and
39
// Eric C. Cyr (eccyr@sandia.gov)
40
// ***********************************************************************
41
// @HEADER
42
43
#ifndef __Panzer_GatherTangent_Epetra_decl_hpp__
44
#define __Panzer_GatherTangent_Epetra_decl_hpp__
45
47
//
48
// Include Files
49
//
51
52
// Panzer
53
#include "
Panzer_CloneableEvaluator.hpp
"
54
#include "
Panzer_Evaluator_WithBaseImpl.hpp
"
55
#include "
Panzer_EpetraVector_ReadOnly_GlobalEvaluationData.hpp
"
56
57
// Phalanx
58
#include "Phalanx_Evaluator_Macros.hpp"
59
#include "Phalanx_MDField.hpp"
60
62
//
63
// Forward Declarations
64
//
66
67
namespace
panzer
68
{
69
class
GlobalIndexer
;
70
}
71
72
namespace
panzer
73
{
90
template
<
typename
EvalT,
typename
TRAITS,
typename
LO,
typename
GO>
91
class
GatherTangent_Epetra
92
:
93
public
panzer::EvaluatorWithBaseImpl
<TRAITS>,
94
public
PHX::EvaluatorDerived<EvalT, TRAITS>,
95
public
panzer::CloneableEvaluator
96
{
97
public
:
98
107
GatherTangent_Epetra
(
108
const
Teuchos::RCP<const panzer::GlobalIndexer>& indexer)
109
:
110
globalIndexer_
(indexer)
111
{
112
}
// end of Constructor
113
124
GatherTangent_Epetra
(
125
const
Teuchos::RCP<const panzer::GlobalIndexer>& indexer,
126
const
Teuchos::ParameterList& p);
127
136
void
137
postRegistrationSetup
(
138
typename
TRAITS::SetupData d,
139
PHX::FieldManager<TRAITS>
& fm);
140
150
void
151
preEvaluate
(
152
typename
TRAITS::PreEvalData d);
153
162
void
163
evaluateFields
(
164
typename
TRAITS::EvalData d);
165
177
virtual
Teuchos::RCP<CloneableEvaluator>
178
clone
(
179
const
Teuchos::ParameterList& pl)
const
180
{
181
using
Teuchos::rcp;
182
return
rcp(
new
183
GatherTangent_Epetra<EvalT, TRAITS, LO, GO>
(
globalIndexer_
, pl));
184
}
// end of clone()
185
186
private
:
187
191
typedef
typename
EvalT::ScalarT
ScalarT
;
192
197
Teuchos::RCP<const panzer::GlobalIndexer>
globalIndexer_
;
198
202
std::vector<int>
fieldIds_
;
203
207
std::vector<PHX::MDField<ScalarT, Cell, NODE>>
gatherFields_
;
208
212
Teuchos::RCP<std::vector<std::string>>
indexerNames_
;
213
218
bool
useTimeDerivativeSolutionVector_
;
219
223
std::string
globalDataKey_
;
224
229
Teuchos::RCP<panzer::EpetraVector_ReadOnly_GlobalEvaluationData>
230
dxdpEvRoGed_
;
231
235
GatherTangent_Epetra
();
236
237
};
// end of class GatherTangent_Epetra
238
239
}
// end of namespace panzer
240
241
#endif
// __Panzer_GatherTangent_Epetra_decl_hpp__
Panzer_CloneableEvaluator.hpp
Panzer_EpetraVector_ReadOnly_GlobalEvaluationData.hpp
Panzer_Evaluator_WithBaseImpl.hpp
PHX::FieldManager
Definition
Panzer_BCStrategy_Base.hpp:53
panzer::CloneableEvaluator
Non-templated empty base class for template managers.
Definition
Panzer_CloneableEvaluator.hpp:52
panzer::EvaluatorWithBaseImpl
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
Definition
Panzer_Evaluator_WithBaseImpl.hpp:56
panzer::GatherTangent_Epetra::globalDataKey_
std::string globalDataKey_
The key identifying the GlobalEvaluationData.
Definition
Panzer_GatherTangent_Epetra_decl.hpp:223
panzer::GatherTangent_Epetra::dxdpEvRoGed_
Teuchos::RCP< panzer::EpetraVector_ReadOnly_GlobalEvaluationData > dxdpEvRoGed_
The GlobalEvaluationData containing both the owned and ghosted tangent vectors.
Definition
Panzer_GatherTangent_Epetra_decl.hpp:230
panzer::GatherTangent_Epetra::GatherTangent_Epetra
GatherTangent_Epetra()
Default Constructor (disabled).
panzer::GatherTangent_Epetra::fieldIds_
std::vector< int > fieldIds_
Field IDs, which need to be mapped.
Definition
Panzer_GatherTangent_Epetra_decl.hpp:202
panzer::GatherTangent_Epetra::postRegistrationSetup
void postRegistrationSetup(typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &fm)
Post-Registration Setup.
Definition
Panzer_GatherTangent_Epetra_impl.hpp:137
panzer::GatherTangent_Epetra::useTimeDerivativeSolutionVector_
bool useTimeDerivativeSolutionVector_
A flag indicating whether we should be working with or .
Definition
Panzer_GatherTangent_Epetra_decl.hpp:218
panzer::GatherTangent_Epetra::clone
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Create a copy.
Definition
Panzer_GatherTangent_Epetra_decl.hpp:178
panzer::GatherTangent_Epetra::ScalarT
EvalT::ScalarT ScalarT
The scalar type.
Definition
Panzer_GatherTangent_Epetra_decl.hpp:191
panzer::GatherTangent_Epetra::evaluateFields
void evaluateFields(typename TRAITS::EvalData d)
Evaluate Fields: Gather operation.
Definition
Panzer_GatherTangent_Epetra_impl.hpp:192
panzer::GatherTangent_Epetra::GatherTangent_Epetra
GatherTangent_Epetra(const Teuchos::RCP< const panzer::GlobalIndexer > &indexer)
Constructor.
Definition
Panzer_GatherTangent_Epetra_decl.hpp:107
panzer::GatherTangent_Epetra::indexerNames_
Teuchos::RCP< std::vector< std::string > > indexerNames_
A list of the names of the fields to be gathered.
Definition
Panzer_GatherTangent_Epetra_decl.hpp:212
panzer::GatherTangent_Epetra::gatherFields_
std::vector< PHX::MDField< ScalarT, Cell, NODE > > gatherFields_
The fields to be gathered.
Definition
Panzer_GatherTangent_Epetra_decl.hpp:207
panzer::GatherTangent_Epetra::preEvaluate
void preEvaluate(typename TRAITS::PreEvalData d)
Pre-Evaluate: Sets the tangent vector.
Definition
Panzer_GatherTangent_Epetra_impl.hpp:170
panzer::GatherTangent_Epetra::globalIndexer_
Teuchos::RCP< const panzer::GlobalIndexer > globalIndexer_
Maps the local (field, element, basis) triplet to a global ID for scattering.
Definition
Panzer_GatherTangent_Epetra_decl.hpp:197
panzer::GlobalIndexer
Definition
Panzer_GlobalIndexer.hpp:59
panzer
Computes .
Definition
Panzer_BasisValues_Evaluator_decl.hpp:54
Generated by
1.17.0