Panzer
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
disc-fe
src
evaluators
Panzer_GatherTangent_BlockedEpetra_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_BlockedEpetra_decl_hpp__
44
#define __Panzer_GatherTangent_BlockedEpetra_decl_hpp__
45
47
//
48
// Include Files
49
//
51
52
// Panzer
53
#include "
Panzer_BlockedVector_ReadOnly_GlobalEvaluationData.hpp
"
54
#include "
Panzer_CloneableEvaluator.hpp
"
55
#include "
Panzer_Dimension.hpp
"
56
#include "PanzerDiscFE_config.hpp"
57
#include "
Panzer_Evaluator_WithBaseImpl.hpp
"
58
#include "
Panzer_Traits.hpp
"
59
60
// Phalanx
61
#include "Phalanx_config.hpp"
62
#include "Phalanx_Evaluator_Macros.hpp"
63
#include "Phalanx_MDField.hpp"
64
65
// Teuchos
66
#include "Teuchos_ParameterList.hpp"
67
69
//
70
// Forward Declarations
71
//
73
74
namespace
panzer
75
{
76
class
GlobalIndexer
;
77
}
78
79
namespace
panzer
80
{
97
template
<
typename
EvalT,
typename
TRAITS,
typename
LO,
typename
GO>
98
class
GatherTangent_BlockedEpetra
99
:
100
public
panzer::EvaluatorWithBaseImpl
<TRAITS>,
101
public
PHX::EvaluatorDerived<EvalT, TRAITS>,
102
public
panzer::CloneableEvaluator
103
{
104
public
:
105
114
GatherTangent_BlockedEpetra
(
115
const
std::vector<Teuchos::RCP<const GlobalIndexer>>&
116
indexers)
117
:
118
indexers_
(indexers)
119
{
120
}
// end of Constructor
121
133
GatherTangent_BlockedEpetra
(
134
const
std::vector<Teuchos::RCP<const GlobalIndexer>>&
135
indexers,
136
const
Teuchos::ParameterList& p);
137
147
void
148
postRegistrationSetup
(
149
typename
TRAITS::SetupData d,
150
PHX::FieldManager<TRAITS>
& vm);
151
160
void
161
preEvaluate
(
162
typename
TRAITS::PreEvalData d);
163
172
void
173
evaluateFields
(
174
typename
TRAITS::EvalData d);
175
187
virtual
Teuchos::RCP<CloneableEvaluator>
188
clone
(
189
const
Teuchos::ParameterList& pl)
const
190
{
191
using
Teuchos::rcp;
192
return
rcp(
new
193
GatherTangent_BlockedEpetra<EvalT, TRAITS, LO, GO>
(
indexers_
, pl));
194
}
// end of clone()
195
196
private
:
197
201
typedef
typename
EvalT::ScalarT
ScalarT
;
202
207
std::vector<Teuchos::RCP<const GlobalIndexer>>
indexers_
;
208
212
std::vector<int>
indexerIds_
;
// block index
213
217
std::vector<int>
subFieldIds_
;
// sub field numbers
218
222
std::vector< PHX::MDField<ScalarT, Cell, NODE>>
gatherFields_
;
223
227
Teuchos::RCP<std::vector<std::string>>
indexerNames_
;
228
233
bool
useTimeDerivativeSolutionVector_
;
234
238
std::string
globalDataKey_
;
239
244
Teuchos::RCP<panzer::BlockedVector_ReadOnly_GlobalEvaluationData>
245
xBvRoGed_
;
246
250
GatherTangent_BlockedEpetra
();
251
252
};
// end of class GatherTangent_BlockedEpetra
253
254
}
// end of namespace panzer
255
256
#endif
// __Panzer_GatherTangent_BlockedEpetra_decl_hpp__
Panzer_BlockedVector_ReadOnly_GlobalEvaluationData.hpp
Panzer_CloneableEvaluator.hpp
Panzer_Dimension.hpp
Panzer_Evaluator_WithBaseImpl.hpp
Panzer_Traits.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_BlockedEpetra::indexers_
std::vector< Teuchos::RCP< const GlobalIndexer > > indexers_
These map the local (field, element, basis) triplet to a global ID for scattering.
Definition
Panzer_GatherTangent_BlockedEpetra_decl.hpp:207
panzer::GatherTangent_BlockedEpetra::indexerNames_
Teuchos::RCP< std::vector< std::string > > indexerNames_
A list of the names of the fields to be gathered.
Definition
Panzer_GatherTangent_BlockedEpetra_decl.hpp:227
panzer::GatherTangent_BlockedEpetra::xBvRoGed_
Teuchos::RCP< panzer::BlockedVector_ReadOnly_GlobalEvaluationData > xBvRoGed_
The GlobalEvaluationData containing both the owned and ghosted tangent vectors.
Definition
Panzer_GatherTangent_BlockedEpetra_decl.hpp:245
panzer::GatherTangent_BlockedEpetra::preEvaluate
void preEvaluate(typename TRAITS::PreEvalData d)
Pre-Evaluate: Sets the tangent vector.
Definition
Panzer_GatherTangent_BlockedEpetra_impl.hpp:165
panzer::GatherTangent_BlockedEpetra::GatherTangent_BlockedEpetra
GatherTangent_BlockedEpetra(const std::vector< Teuchos::RCP< const GlobalIndexer > > &indexers)
Constructor.
Definition
Panzer_GatherTangent_BlockedEpetra_decl.hpp:114
panzer::GatherTangent_BlockedEpetra::useTimeDerivativeSolutionVector_
bool useTimeDerivativeSolutionVector_
A flag indicating whether we're to be working with or .
Definition
Panzer_GatherTangent_BlockedEpetra_decl.hpp:233
panzer::GatherTangent_BlockedEpetra::indexerIds_
std::vector< int > indexerIds_
The block index into indexers_.
Definition
Panzer_GatherTangent_BlockedEpetra_decl.hpp:212
panzer::GatherTangent_BlockedEpetra::gatherFields_
std::vector< PHX::MDField< ScalarT, Cell, NODE > > gatherFields_
The fields to be gathered.
Definition
Panzer_GatherTangent_BlockedEpetra_decl.hpp:222
panzer::GatherTangent_BlockedEpetra::GatherTangent_BlockedEpetra
GatherTangent_BlockedEpetra()
Default Constructor (disabled).
panzer::GatherTangent_BlockedEpetra::globalDataKey_
std::string globalDataKey_
The key identifying the GlobalEvaluationData.
Definition
Panzer_GatherTangent_BlockedEpetra_decl.hpp:238
panzer::GatherTangent_BlockedEpetra::ScalarT
EvalT::ScalarT ScalarT
The scalar type.
Definition
Panzer_GatherTangent_BlockedEpetra_decl.hpp:201
panzer::GatherTangent_BlockedEpetra::postRegistrationSetup
void postRegistrationSetup(typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &vm)
Post-Registration Setup.
Definition
Panzer_GatherTangent_BlockedEpetra_impl.hpp:135
panzer::GatherTangent_BlockedEpetra::evaluateFields
void evaluateFields(typename TRAITS::EvalData d)
Evaluate Fields: Gather operation.
Definition
Panzer_GatherTangent_BlockedEpetra_impl.hpp:190
panzer::GatherTangent_BlockedEpetra::subFieldIds_
std::vector< int > subFieldIds_
Sub-field IDs, which need to be mapped.
Definition
Panzer_GatherTangent_BlockedEpetra_decl.hpp:217
panzer::GatherTangent_BlockedEpetra::clone
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Create a copy.
Definition
Panzer_GatherTangent_BlockedEpetra_decl.hpp:188
panzer::GlobalIndexer
Definition
Panzer_GlobalIndexer.hpp:59
panzer
Computes .
Definition
Panzer_BasisValues_Evaluator_decl.hpp:54
Generated by
1.17.0