Tempus Version of the Day
Time Integration
Loading...
Searching...
No Matches
Tempus_SolutionStateMetaData_decl.hpp
Go to the documentation of this file.
1// @HEADER
2// ****************************************************************************
3// Tempus: Copyright (2017) Sandia Corporation
4//
5// Distributed under BSD 3-clause license (See accompanying file Copyright.txt)
6// ****************************************************************************
7// @HEADER
8
9#ifndef Tempus_SolutionStateMetaData_decl_hpp
10#define Tempus_SolutionStateMetaData_decl_hpp
11
12// Teuchos
13#include "Teuchos_VerboseObject.hpp"
14#include "Teuchos_Describable.hpp"
15// Tempus
16#include "Tempus_config.hpp"
17#include "Tempus_Types.hpp"
18
19
20namespace Tempus {
21
39template<class Scalar>
41 public Teuchos::Describable,
42 public Teuchos::VerboseObject<Tempus::SolutionStateMetaData<Scalar> >
43{
44public:
45
48
51 const Scalar time,
52 const int iStep,
53 const Scalar dt,
54 const Scalar errorAbs,
55 const Scalar errorRel,
56 const Scalar errorRelNm1,
57 const Scalar errorRelNm2,
58 const int order,
59 const int nFailures,
60 const int nRunningFailures,
61 const int nConsecutiveFailures,
62 const Scalar tolRel,
63 const Scalar tolAbs,
64 const Scalar xNormL2,
65 const Scalar dxNormL2Rel,
66 const Scalar dxNormL2Abs,
67 const bool computeNorms,
68 const Status solutionStatus,
69 const bool output,
70 const bool outputScreen,
71 const bool isSynced,
72 const bool isInterpolated,
73 const Scalar accuracy);
74
77
79 Teuchos::RCP<SolutionStateMetaData<Scalar> > clone() const;
80
82 void copy(const Teuchos::RCP<const SolutionStateMetaData<Scalar> >& ssmd);
83
86
88
89 Scalar getTime() const {return time_;}
90 int getIStep() const {return iStep_;}
91 Scalar getDt() const {return dt_;}
92 Scalar getErrorAbs() const {return errorAbs_;}
93 Scalar getErrorRel() const {return errorRel_;}
94 Scalar getErrorRelNm1() const {return errorRelNm1_;}
95 Scalar getErrorRelNm2() const {return errorRelNm2_;}
96 Scalar getOrder() const {return order_;}
97 int getNFailures() const {return nFailures_;}
100 Scalar getTolAbs() const {return tolAbs_;}
101 Scalar getTolRel() const {return tolRel_;}
102 Scalar getXNormL2() const {return xNormL2_;}
103 Scalar getDxNormL2Abs() const {return dxNormL2Abs_;}
104 Scalar getDxNormL2Rel() const {return dxNormL2Rel_;}
105 bool getComputeNorms() const {return computeNorms_;}
107 bool getOutput() const {return output_;}
108 bool getOutputScreen() const {return outputScreen_;}
109 bool getIsSynced() const {return isSynced_;}
110 bool getIsInterpolated() const {return isInterpolated_;}
111 Scalar getAccuracy() const {return accuracy_;}
112
113 void setTime(Scalar time) {time_ = time;}
114 void setIStep(int iStep) {iStep_ = iStep;}
115 void setDt(Scalar dt) {dt_ = dt;}
116 void setErrorAbs (Scalar errorAbs) {errorAbs_ = errorAbs;}
117 void setErrorRel (Scalar errorRel) {errorRelNm2_ = errorRelNm1_;
119 errorRel_ = errorRel;}
120 void setErrorRelNm1 (Scalar errorRelNm1) {errorRelNm1_ = errorRelNm1;}
121 void setErrorRelNm2 (Scalar errorRelNm2) {errorRelNm2_ = errorRelNm2;}
122 void setOrder(Scalar order) {order_ = order;}
123 void setNFailures(int nFailures) {nFailures_ = nFailures;}
124 void setNRunningFailures(int nFailures) {nRunningFailures_ = nFailures;}
125 void setNConsecutiveFailures(int nConsecutiveFailures)
126 {nConsecutiveFailures_ = nConsecutiveFailures;}
127 void setTolRel (Scalar tolRel) {tolRel_ = tolRel;}
128 void setTolAbs (Scalar tolAbs) {tolAbs_ = tolAbs;}
129 void setXNormL2 (Scalar xNormL2) {xNormL2_ = xNormL2;}
130 void setDxNormL2Rel (Scalar dxNormL2Rel) {dxNormL2Rel_ = dxNormL2Rel;}
131 void setDxNormL2Abs (Scalar dxNormL2Abs) {dxNormL2Abs_ = dxNormL2Abs;}
132 void setComputeNorms (bool computeNorms) {computeNorms_ = computeNorms;}
133 void setSolutionStatus(Status solutionStatus)
134 {solutionStatus_ = solutionStatus;}
135 void setOutput(bool output) {output_ = output;}
136 void setOutputScreen(bool outputScreen) {outputScreen_ = outputScreen;}
137 void setIsSynced(bool isSynced) {isSynced_=isSynced;}
138 void setIsInterpolated(bool isInterpolated)
139 {isInterpolated_ = isInterpolated;}
140 void setAccuracy(Scalar accuracy) {accuracy_ = accuracy;}
142
144
145 virtual std::string description() const;
146 virtual void describe(Teuchos::FancyOStream &out,
147 const Teuchos::EVerbosityLevel verbLevel) const;
149
150protected:
151 Scalar time_;
152 int iStep_;
153 Scalar dt_;
154 Scalar errorAbs_;
155 Scalar errorRel_;
158 Scalar order_;
162 Scalar tolRel_;
163 Scalar tolAbs_;
164 Scalar xNormL2_;
168
177 bool output_;
185 Scalar accuracy_;
186
187};
188
189
190} // namespace Tempus
191
192#endif // Tempus_SolutionStateMetaData_decl_hpp
Teuchos::RCP< SolutionStateMetaData< Scalar > > clone() const
Clone constructor.
Scalar errorRel_
Relative local truncation error (@ t_n).
Status solutionStatus_
The solutionStatus is used to indicate.
Scalar errorRelNm2_
Relative local truncation error (@ t_{n-2}).
Scalar dxNormL2Abs_
Absolute L2-Norm of the change in solution, ||x_i-x_{i-1}||.
void copy(const Teuchos::RCP< const SolutionStateMetaData< Scalar > > &ssmd)
This is a deep copy.
bool isInterpolated_
F - soln is time integrated; T - soln is interpolated.
Scalar accuracy_
Interpolation accuracy of solution.
int iStep_
Time step index for this solution.
bool isSynced_
True - all of soln (x, xDot, xDotDot) is at the same time level. False - solution is at different tim...
virtual void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
int nRunningFailures_
Total number of running stepper failures.
Scalar errorAbs_
Absolute local truncation error (@ t_n).
int nConsecutiveFailures_
Consecutive number of stepper failures.
Scalar dxNormL2Rel_
Relative L2-Norm of the change in solution, ||x_i-x_{i-1}||/||x_{i-1}||.
bool computeNorms_
flag to compute norms of solution
bool output_
SolutionState should be or has been outputted.
Scalar errorRelNm1_
Relative local truncation error (@ t_{n-1}).
int nFailures_
Total number of stepper failures.
void setNConsecutiveFailures(int nConsecutiveFailures)
Status
Status for the Integrator, the Stepper and the SolutionState.