Panzer Version of the Day
Loading...
Searching...
No Matches
Panzer_GatherSolution_Input.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_Input_hpp__
44#define __Panzer_GatherSolution_Input_hpp__
45
46#include <vector>
47#include <string>
48
49#include "Teuchos_RCP.hpp"
50#include "Teuchos_ParameterList.hpp"
51#include "Teuchos_ParameterListAcceptorDefaultBase.hpp"
52
53namespace panzer {
54
55// forward declaration
56class PureBasis;
57
62class GatherSolution_Input : Teuchos::ParameterListAcceptorDefaultBase {
63public:
65
69 void setParameterList(const Teuchos::ParameterList & pl);
70
74 void setParameterList(const Teuchos::RCP<Teuchos::ParameterList> & pl);
75
77 Teuchos::RCP<const Teuchos::ParameterList> getValidParameters() const;
78
79 // Accessor functions
80
82 const std::vector<std::string> & getDofNames() const { return dofNames_; }
83
87 const std::vector<std::string> & getIndexerNames() const { return indexerNames_; }
88
90 Teuchos::RCP<const PureBasis> getBasis() const { return basis_; }
91
94
96 std::string getGlobalDataKey() const { return globalDataKey_; }
97
98 // tangent
99
101 const std::vector<std::vector<std::string> > & getTangentNames() const { return tangentNames_; }
102
103 // jacobian
104
106 std::string getSensitivitiesName() const { return sensName_; }
107
109 int getGatherSeedIndex() const { return gatherSeedIndex_; }
110
113
114 // hessian
115
118
121
122private:
124
125 // residual
126 std::vector<std::string> dofNames_;
127 std::vector<std::string> indexerNames_;
128 Teuchos::RCP<const PureBasis> basis_;
130 std::string globalDataKey_;
131
132 // tangent
133 std::vector<std::vector<std::string> > tangentNames_;
134
135 // jacobian
136 std::string sensName_;
139
140 // hessian
143};
144
145}
146
147#endif
std::vector< std::vector< std::string > > tangentNames_
std::string getGlobalDataKey() const
Name of the global evaluation data container to use for the source vector (all types)
void setParameterList(const Teuchos::ParameterList &pl)
int getGatherSeedIndex() const
What index to use for initializing the seed (Jacobian and Hessian)
GatherSolution_Input(const GatherSolution_Input &)
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
Get valid parameters.
const std::vector< std::vector< std::string > > & getTangentNames() const
Get the name of the tangent fields (tangent only)
std::string getSecondSensitivityDataKeyPrefix()
What prefix to use for the GEDC for second derivative sensitivity direction (Hessian only)
bool firstSensitivitiesAvailable()
Are first derivative sensitivities enabled or disabled? (Jacobian and Hessian)
Teuchos::RCP< const PureBasis > basis_
bool useTimeDerivativeSolutionVector() const
Gather a time derivative vector? (all types)
const std::vector< std::string > & getIndexerNames() const
std::string getSensitivitiesName() const
The name of the sensitivities. Enables sensitivities at "preEvaluate" time (Jacobian and Hessian)
bool secondSensitivitiesAvailable()
Are second derivative sensitivies enabled or disabled (Hessian only)
Teuchos::RCP< const PureBasis > getBasis() const
Basis definiting layout of dof names (all types)
const std::vector< std::string > & getDofNames() const
The names of the DOFs to be gathered (all types)