Panzer
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
disc-fe
src
evaluators
Panzer_GatherSolution_Epetra_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_Epetra_Hessian_hpp__
44
#define __Panzer_GatherSolution_Epetra_Hessian_hpp__
45
46
// Only do this if required by the user.
47
#ifdef Panzer_BUILD_HESSIAN_SUPPORT
48
49
// the includes for this file come in as a result of the includes in the main
50
// Epetra gather solution file
51
52
namespace
panzer
53
{
64
template
<
typename
TRAITS,
typename
LO,
typename
GO>
65
class
GatherSolution_Epetra
<
panzer
::
Traits::Hessian
, TRAITS, LO, GO>
66
:
67
public
panzer::EvaluatorWithBaseImpl
<TRAITS>,
68
public
PHX::EvaluatorDerived<panzer::Traits::Hessian, TRAITS>,
69
public
panzer::CloneableEvaluator
70
{
71
public
:
72
81
GatherSolution_Epetra
(
82
const
Teuchos::RCP<const panzer::GlobalIndexer>& indexer)
83
:
84
globalIndexer_
(indexer)
85
{
86
}
// end of Constructor
87
99
GatherSolution_Epetra
(
100
const
Teuchos::RCP<const panzer::GlobalIndexer>& indexer,
101
const
Teuchos::ParameterList& p);
102
111
void
112
postRegistrationSetup(
113
typename
TRAITS::SetupData d,
114
PHX::FieldManager<TRAITS>
& vm);
115
132
void
133
preEvaluate(
134
typename
TRAITS::PreEvalData d);
135
145
void
146
evaluateFields(
147
typename
TRAITS::EvalData d);
148
161
virtual
Teuchos::RCP<CloneableEvaluator>
162
clone
(
163
const
Teuchos::ParameterList& pl)
const
164
{
165
using
panzer::Traits
;
166
using
Teuchos::rcp;
167
return
rcp(
new
GatherSolution_Epetra<Traits::Hessian, TRAITS, LO, GO>
168
(
globalIndexer_
, pl));
169
}
// end of clone()
170
171
private
:
172
176
typedef
typename
panzer::Traits::Hessian
EvalT
;
177
181
typedef
typename
panzer::Traits::Hessian::ScalarT
ScalarT
;
182
187
Teuchos::RCP<const panzer::GlobalIndexer>
globalIndexer_
;
188
192
std::vector<std::string>
indexerNames_
;
193
197
std::vector<int>
fieldIds_
;
198
202
std::vector< PHX::MDField<ScalarT, Cell, NODE>>
gatherFields_
;
203
207
std::vector< PHX::MDField<ScalarT, Cell, NODE>>
sensFields_
;
208
213
bool
useTimeDerivativeSolutionVector_
;
214
218
std::string
globalDataKey_
;
219
223
std::string
sensitivitiesName_
;
224
230
int
gatherSeedIndex_
;
231
236
bool
firstSensitivitiesAvailable_
;
237
242
bool
firstApplySensitivities_
;
243
247
std::string
sensitivities2ndPrefix_
;
248
253
bool
secondSensitivitiesAvailable_
;
254
259
bool
secondApplySensitivities_
;
260
264
Teuchos::RCP<Epetra_Vector>
x_
;
265
270
Teuchos::RCP<panzer::EpetraVector_ReadOnly_GlobalEvaluationData>
271
xEvRoGed_
;
272
277
Teuchos::RCP<panzer::EpetraVector_ReadOnly_GlobalEvaluationData>
278
dxEvRoGed_
;
279
283
GatherSolution_Epetra
();
284
285
};
// end of class GatherSolution_Epetra (Hessian Specialization)
286
287
}
// end of namespace panzer
288
289
#endif
// Panzer_BUILD_HESSIAN_SUPPORT
290
291
#endif
// __Panzer_GatherSolution_Epetra_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_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::EvalT
panzer::Traits::Hessian EvalT
The evaluation type.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:176
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::secondSensitivitiesAvailable_
bool secondSensitivitiesAvailable_
A flag indicating whether or not we're to be working with the second derivative sensitivities.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:253
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::gatherFields_
std::vector< PHX::MDField< ScalarT, Cell, NODE > > gatherFields_
The fields to be gathered.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:202
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::clone
virtual Teuchos::RCP< CloneableEvaluator > clone(const Teuchos::ParameterList &pl) const
Create a copy.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:162
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::secondApplySensitivities_
bool secondApplySensitivities_
Used by evaluateFields() to turn on/off the second derivative sensitivities.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:259
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::firstApplySensitivities_
bool firstApplySensitivities_
Used by evaluateFields() to turn on/off the first derivative sensitivities.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:242
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::fieldIds_
std::vector< int > fieldIds_
Field IDs, which need to be mapped.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:197
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::sensFields_
std::vector< PHX::MDField< ScalarT, Cell, NODE > > sensFields_
The sensitivity fields.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:207
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::gatherSeedIndex_
int gatherSeedIndex_
Which gather seed in the workset to use.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:230
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::firstSensitivitiesAvailable_
bool firstSensitivitiesAvailable_
A flag indicating whether or not we're to be working with the first derivative sensitivities.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:236
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::useTimeDerivativeSolutionVector_
bool useTimeDerivativeSolutionVector_
A flag indicating whether we're to be working with or .
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:213
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::globalIndexer_
Teuchos::RCP< const panzer::GlobalIndexer > globalIndexer_
Maps the local (field, element, basis) triplet to a global ID for scattering.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:187
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::sensitivities2ndPrefix_
std::string sensitivities2ndPrefix_
The prefix for the field containing the second sensitivities.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:247
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::ScalarT
panzer::Traits::Hessian::ScalarT ScalarT
The scalar type.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:181
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::GatherSolution_Epetra
GatherSolution_Epetra(const Teuchos::RCP< const panzer::GlobalIndexer > &indexer)
Constructor.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:81
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::x_
Teuchos::RCP< Epetra_Vector > x_
The solution vector.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:264
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::xEvRoGed_
Teuchos::RCP< panzer::EpetraVector_ReadOnly_GlobalEvaluationData > xEvRoGed_
The GlobalEvaluationData containing both the owned and ghosted solution vectors.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:271
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::GatherSolution_Epetra
GatherSolution_Epetra()
Default Constructor (disabled).
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::sensitivitiesName_
std::string sensitivitiesName_
Sets which gather operations have sensitivities.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:223
panzer::GatherSolution_Epetra< 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_Epetra_Hessian.hpp:192
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::dxEvRoGed_
Teuchos::RCP< panzer::EpetraVector_ReadOnly_GlobalEvaluationData > dxEvRoGed_
The GlobalEvaluationData containing both the owned and ghosted derivative vectors.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:278
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::globalDataKey_
std::string globalDataKey_
The key identifying the GlobalEvaluationData.
Definition
Panzer_GatherSolution_Epetra_Hessian.hpp:218
panzer::GatherSolution_Epetra
Gathers solution values from the Newton solution vector into the nodal fields of the field manager.
Definition
Panzer_GatherSolution_Epetra_decl.hpp:84
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