Tempus  Version of the Day
Time Integration
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 
20 namespace Tempus {
21 
39 template<class Scalar>
41  public Teuchos::Describable,
42  public Teuchos::VerboseObject<Tempus::SolutionStateMetaData<Scalar> >
43 {
44 public:
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 
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_;}
98  int getNRunningFailures() const {return nRunningFailures_;}
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 
150 protected:
151  Scalar time_;
152  int iStep_;
153  Scalar dt_;
154  Scalar errorAbs_;
155  Scalar errorRel_;
156  Scalar errorRelNm1_;
157  Scalar errorRelNm2_;
158  Scalar order_;
162  Scalar tolRel_;
163  Scalar tolAbs_;
164  Scalar xNormL2_;
165  Scalar dxNormL2Rel_;
166  Scalar dxNormL2Abs_;
168 
177  bool output_;
179 
183  bool isSynced_;
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.
Status solutionStatus_
The solutionStatus is used to indicate.
int nFailures_
Total number of stepper failures.
Scalar dxNormL2Rel_
Relative L2-Norm of the change in solution, ||x_i-x_{i-1}||/||x_{i-1}||.
void copy(const Teuchos::RCP< const SolutionStateMetaData< Scalar > > &ssmd)
This is a deep copy.
Scalar dxNormL2Abs_
Absolute L2-Norm of the change in solution, ||x_i-x_{i-1}||.
int nRunningFailures_
Total number of running stepper failures.
void setNConsecutiveFailures(int nConsecutiveFailures)
Scalar errorRelNm2_
Relative local truncation error (@ t_{n-2})
int iStep_
Time step index for this solution.
virtual void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
Scalar errorRelNm1_
Relative local truncation error (@ t_{n-1})
bool isInterpolated_
F - soln is time integrated; T - soln is interpolated.
Status
Status for the Integrator, the Stepper and the SolutionState.
bool output_
SolutionState should be or has been outputted.
int nConsecutiveFailures_
Consecutive number of stepper failures.
Scalar errorRel_
Relative local truncation error (@ t_n)
Scalar dt_
Time step for this solution.
Scalar accuracy_
Interpolation accuracy of solution.
bool computeNorms_
flag to compute norms of solution
bool isSynced_
True - all of soln (x, xDot, xDotDot) is at the same time level. False - solution is at different tim...
Scalar errorAbs_
Absolute local truncation error (@ t_n)