Panzer
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
disc-fe
src
evaluators
Panzer_GatherSolution_BlockedEpetra_Hessian.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_GatherSolution_BlockedEpetra_Hessian_hpp__
44
#define __Panzer_GatherSolution_BlockedEpetra_Hessian_hpp__
45
46
// Only do this if required by the user.
47
#ifdef Panzer_BUILD_HESSIAN_SUPPORT
48
49
namespace
panzer
50
{
61
template
<
typename
TRAITS,
typename
LO,
typename
GO>
62
class
GatherSolution_BlockedEpetra
<
panzer
::
Traits::Hessian
, TRAITS, LO, GO>
63
:
64
public
panzer::EvaluatorWithBaseImpl
<TRAITS>,
65
public
PHX::EvaluatorDerived<panzer::Traits::Hessian, TRAITS>,
66
public
panzer::CloneableEvaluator
67
{
68
public
:
69
78
GatherSolution_BlockedEpetra
(
79
const
std::vector<Teuchos::RCP<
const
GlobalIndexer<LO, int>
>>&
80
indexers)
81
:
82
indexers_
(indexers)
83
{
84
}
// end of Constructor
85
98
GatherSolution_BlockedEpetra
(
99
const
std::vector<Teuchos::RCP<
const
GlobalIndexer<LO, int>
>>&
100
indexers,
101
const
Teuchos::ParameterList& p);
102
112
void
113
postRegistrationSetup
(
114
typename
TRAITS::SetupData d,
115
PHX::FieldManager<TRAITS>
& vm);
116
127
void
128
preEvaluate(
129
typename
TRAITS::PreEvalData d);
130
139
void
140
evaluateFields
(
141
typename
TRAITS::EvalData d);
142
155
virtual
Teuchos::RCP<CloneableEvaluator>
156
clone
(
157
const
Teuchos::ParameterList& pl)
const
158
{
159
using
panzer::GatherSolution_BlockedEpetra
;
160
using
panzer::Traits
;
161
using
Teuchos::rcp;
162
return
rcp(
new
163
GatherSolution_BlockedEpetra<Traits::Hessian, TRAITS, LO, GO>
164
(
indexers_
, pl));
165
}
// end of clone()
166
167
private
:
168
172
typedef
typename
panzer::Traits::Hessian
EvalT
;
173
177
typedef
typename
panzer::Traits::Hessian::ScalarT
ScalarT
;
178
182
std::vector<std::string>
indexerNames_
;
183
187
std::string
globalDataKey_
;
188
193
std::vector<Teuchos::RCP<const GlobalIndexer<LO, int>>>
indexers_
;
194
198
std::vector<int>
indexerIds_
;
199
203
std::vector<int>
subFieldIds_
;
204
208
std::vector< PHX::MDField<ScalarT, Cell, NODE>>
gatherFields_
;
209
214
bool
useTimeDerivativeSolutionVector_
;
215
219
std::string
sensitivitiesName_
;
220
226
int
gatherSeedIndex_
;
227
232
bool
firstSensitivitiesAvailable_
;
233
238
bool
firstApplySensitivities_
;
239
243
std::string
sensitivities2ndPrefix_
;
244
249
bool
secondSensitivitiesAvailable_
;
250
255
bool
secondApplySensitivities_
;
256
260
Teuchos::RCP<Thyra::ProductVectorBase<double>>
x_
;
261
266
Teuchos::RCP<panzer::BlockedVector_ReadOnly_GlobalEvaluationData>
267
xBvRoGed_
;
268
273
Teuchos::RCP<panzer::BlockedVector_ReadOnly_GlobalEvaluationData>
274
dxBvRoGed_
;
275
279
GatherSolution_BlockedEpetra
();
280
281
};
// end of class GatherSolution_BlockedEpetra (Hessian Specialization)
282
283
}
// end of namespace panzer
284
285
#endif
// Panzer_BUILD_HESSIAN_SUPPORT
286
287
#endif
// __Panzer_GatherSolution_BlockedEpetra_Hessian_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::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::clone
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Create a copy.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:156
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::ScalarT
panzer::Traits::Hessian::ScalarT ScalarT
The scalar type.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:177
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::GatherSolution_BlockedEpetra
GatherSolution_BlockedEpetra(const std::vector< Teuchos::RCP< const GlobalIndexer< LO, int > > > &indexers)
Constructor.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:78
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::secondSensitivitiesAvailable_
bool secondSensitivitiesAvailable_
A flag indicating whether or not second sensitivities information is available.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:249
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::x_
Teuchos::RCP< Thyra::ProductVectorBase< double > > x_
The solution vector.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:260
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::secondApplySensitivities_
bool secondApplySensitivities_
Used by evaluateFields() to turn on/off the second sensitivities.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:255
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::indexers_
std::vector< Teuchos::RCP< const GlobalIndexer< LO, int > > > indexers_
These map the local (field, element, basis) triplet to a global ID for scattering.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:193
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::sensitivities2ndPrefix_
std::string sensitivities2ndPrefix_
The prefix for the field containing the second sensitivities.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:243
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::firstApplySensitivities_
bool firstApplySensitivities_
Used by evaluateFields() to turn on/off the first sensitivities.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:238
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::GatherSolution_BlockedEpetra
GatherSolution_BlockedEpetra()
Default Constructor (disabled).
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::firstSensitivitiesAvailable_
bool firstSensitivitiesAvailable_
A flag indicating whether or not first sensitivities information is available.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:232
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::indexerIds_
std::vector< int > indexerIds_
The block index into indexers_.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:198
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::xBvRoGed_
Teuchos::RCP< panzer::BlockedVector_ReadOnly_GlobalEvaluationData > xBvRoGed_
The GlobalEvaluationData containing both the owned and ghosted solution vectors.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:267
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::indexerNames_
std::vector< std::string > indexerNames_
A list of the names of the fields to be gathered.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:182
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::gatherSeedIndex_
int gatherSeedIndex_
Which gather seed in the workset to use.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:226
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::globalDataKey_
std::string globalDataKey_
The key identifying the GlobalEvaluationData.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:187
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::EvalT
panzer::Traits::Hessian EvalT
The evaluation type.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:172
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::useTimeDerivativeSolutionVector_
bool useTimeDerivativeSolutionVector_
A flag indicating whether we should be working with or .
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:214
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::subFieldIds_
std::vector< int > subFieldIds_
Sub-field IDs, which need to be mapped.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:203
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::sensitivitiesName_
std::string sensitivitiesName_
Sets which gather operations have sensitivities.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:219
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::gatherFields_
std::vector< PHX::MDField< ScalarT, Cell, NODE > > gatherFields_
The fields to be gathered.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:208
panzer::GatherSolution_BlockedEpetra< panzer::Traits::Hessian, TRAITS, LO, GO >::dxBvRoGed_
Teuchos::RCP< panzer::BlockedVector_ReadOnly_GlobalEvaluationData > dxBvRoGed_
The GlobalEvaluationData containing both the owned and ghosted derivative vectors.
Definition
Panzer_GatherSolution_BlockedEpetra_Hessian.hpp:274
panzer::GatherSolution_BlockedEpetra
Gathers solution values from the Newton solution vector into the nodal fields of the field manager.
Definition
Panzer_GatherSolution_BlockedEpetra_decl.hpp:99
panzer::GatherSolution_BlockedEpetra::evaluateFields
void evaluateFields(typename TRAITS::EvalData d)
Evaluate Fields.
Definition
Panzer_GatherSolution_BlockedEpetra_decl.hpp:164
panzer::GatherSolution_BlockedEpetra::GatherSolution_BlockedEpetra
GatherSolution_BlockedEpetra(const Teuchos::ParameterList &p)
Constructor.
Definition
Panzer_GatherSolution_BlockedEpetra_decl.hpp:115
panzer::GatherSolution_BlockedEpetra::postRegistrationSetup
void postRegistrationSetup(typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &fm)
Post-Registration Setup.
Definition
Panzer_GatherSolution_BlockedEpetra_decl.hpp:149
panzer::GlobalIndexer
Definition
Panzer_GlobalIndexer.hpp:59
panzer
Computes .
Definition
Panzer_BasisValues_Evaluator_decl.hpp:54
panzer::Traits::Hessian
Definition
Panzer_Traits.hpp:108
panzer::Traits::Hessian::ScalarT
HessianType ScalarT
Definition
Panzer_Traits.hpp:108
panzer::Traits
Definition
Panzer_Traits.hpp:80
Generated by
1.17.0