Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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"
51 #include "Teuchos_ParameterListAcceptorDefaultBase.hpp"
52 
53 namespace panzer {
54 
55 // forward declaration
56 class PureBasis;
57 
63 public:
65 
70 
75 
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 
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 
122 private:
123  GatherSolution_Input(const GatherSolution_Input &); // hide me
124 
125  // residual
126  std::vector<std::string> dofNames_;
127  std::vector<std::string> indexerNames_;
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
Teuchos::RCP< const PureBasis > basis_
const std::vector< std::vector< std::string > > & getTangentNames() const
Get the name of the tangent fields (tangent only)
const std::vector< std::string > & getDofNames() const
The names of the DOFs to be gathered (all types)
void setParameterList(const Teuchos::ParameterList &pl)
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
Get valid parameters.
std::string getGlobalDataKey() const
Name of the global evaluation data container to use for the source vector (all types) ...
std::vector< std::vector< std::string > > tangentNames_
Teuchos::RCP< const PureBasis > getBasis() const
Basis definiting layout of dof names (all types)
std::vector< std::string > indexerNames_
int getGatherSeedIndex() const
What index to use for initializing the seed (Jacobian and Hessian)
bool firstSensitivitiesAvailable()
Are first derivative sensitivities enabled or disabled? (Jacobian and Hessian)
bool useTimeDerivativeSolutionVector() const
Gather a time derivative vector? (all types)
bool secondSensitivitiesAvailable()
Are second derivative sensitivies enabled or disabled (Hessian only)
const std::vector< std::string > & getIndexerNames() const
std::string getSecondSensitivityDataKeyPrefix()
What prefix to use for the GEDC for second derivative sensitivity direction (Hessian only) ...
std::string getSensitivitiesName() const
The name of the sensitivities. Enables sensitivities at &quot;preEvaluate&quot; time (Jacobian and Hessian) ...