Tempus  Version of the Day
Time Integration
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_Types.hpp"
17 
18 
19 namespace Tempus {
20 
21 /** \brief Solution state meta data.
22  */
23 template<class Scalar>
25  public Teuchos::Describable,
26  public Teuchos::VerboseObject<Tempus::SolutionStateMetaData<Scalar> >
27 {
28 public:
29 
30  /// Default constructor.
32 
33  /// Constructor
35  const Scalar time,
36  const int iStep,
37  const Scalar dt,
38  const Scalar errorAbs,
39  const Scalar errorRel,
40  const int order,
41  const int nFailures,
42  const int nRunningFailures,
43  const int nConsecutiveFailures,
44  const Status solutionStatus,
45  const bool output,
46  const bool outputScreen,
47  const bool isSynced,
48  const bool isInterpolated,
49  const Scalar accuracy);
50 
51  /// Copy constructor
53 
54  /// Clone constructor
55  Teuchos::RCP<SolutionStateMetaData<Scalar> > clone() const;
56 
57  /// This is a deep copy
58  void copy(const Teuchos::RCP<const SolutionStateMetaData<Scalar> >& ssmd);
59 
60  /// Destructor
62 
63  /// \name Accessor methods
64  //@{
65  Scalar getTime() const {return time_;}
66  int getIStep() const {return iStep_;}
67  Scalar getDt() const {return dt_;}
68  Scalar getErrorAbs() const {return errorAbs_;}
69  Scalar getErrorRel() const {return errorRel_;}
70  Scalar getOrder() const {return order_;}
71  int getNFailures() const {return nFailures_;}
72  int getNRunningFailures() const {return nRunningFailures_;}
75  bool getOutput() const {return output_;}
76  bool getOutputScreen() const {return outputScreen_;}
77  bool getIsSynced() const {return isSynced_;}
78  bool getIsInterpolated() const {return isInterpolated_;}
79  Scalar getAccuracy() const {return accuracy_;}
80  Scalar getTolAbs() const {return tolAbs_;}
81  Scalar getTolRel() const {return tolRel_;}
82 
83  void setTime(Scalar time) {time_ = time;}
84  void setIStep(int iStep) {iStep_ = iStep;}
85  void setDt(Scalar dt) {dt_ = dt;}
86  void setErrorAbs (Scalar errorAbs){errorAbs_ = errorAbs;}
87  void setErrorRel (Scalar errorRel){errorRel_ = errorRel;}
88  void setOrder(Scalar order) {order_ = order;}
89  void setNFailures(int nFailures) {nFailures_ = nFailures;}
90  void setNRunningFailures(int nFailures) {nRunningFailures_ = nFailures;}
91  void setNConsecutiveFailures(int nConsecutiveFailures)
92  {nConsecutiveFailures_ = nConsecutiveFailures;}
93  void setSolutionStatus(Status solutionStatus)
94  {solutionStatus_ = solutionStatus;}
95  void setOutput(bool output) {output_ = output;}
96  void setOutputScreen(bool outputScreen) {outputScreen_ = outputScreen;}
97  void setIsSynced(bool isSynced) {isSynced_=isSynced;}
98  void setIsInterpolated(bool isInterpolated)
99  {isInterpolated_ = isInterpolated;}
100  void setAccuracy(Scalar accuracy) {accuracy_ = accuracy;}
101  void setTolAbs(Scalar tolAbs){tolAbs_ = tolAbs;}
102  void setTolRel(Scalar tolRel){tolRel_ = tolRel;}
103 
104  //@}
105 
106  /// \name Overridden from Teuchos::Describable
107  //@{
108  virtual std::string description() const;
109  virtual void describe(Teuchos::FancyOStream &out,
110  const Teuchos::EVerbosityLevel verbLevel) const;
111  //@}
112 
113 protected:
114  Scalar time_; ///< Time of solution
115  int iStep_; ///< Time step index for this solution
116  Scalar dt_; ///< Time step for this solution
117  Scalar errorAbs_; ///< Absolute local truncation error
118  Scalar errorRel_; ///< Relative local truncation error
119  Scalar order_; ///< Order of this solution
120  int nFailures_; ///< Total number of stepper failures
121  int nRunningFailures_; ///< Total number of running stepper failures
122  int nConsecutiveFailures_; ///< Consecutive number of stepper failures
123  Scalar tolRel_; ///< Absolute tolerance
124  Scalar tolAbs_; ///< Relative tolerance
125 
126  /** \brief The solutionStatus is used to indicate
127  - if the solution is still being worked on; WORKING
128  - if the solution is accepted and completed (e.g., past solutions
129  in SolutionHistory); PASSED.
130  - if the time step has FAILED. This may be caused by the Stepper
131  failing, or Integrator not accepting the time step.
132  */
134  bool output_; ///< SolutionState should be or has been outputted
135  bool outputScreen_; ///< Output screen dump
136  /** \brief True - all of soln (x, xDot, xDotDot) is at the same time level.
137  * False - solution is at different time levels, e.g., leapfrog where
138  * \f$x_n\f$ and \f$\dot{x}_{n+1/2}\f$
139  */
140  bool isSynced_;
141  bool isInterpolated_; ///< F - soln is time integrated; T - soln is interpolated
142  Scalar accuracy_; ///< Interpolation accuracy of solution
143 
144 };
145 } // namespace Tempus
146 
147 #endif // Tempus_SolutionStateMetaData_decl_hpp
Tempus::SolutionStateMetaData
Solution state meta data.
Definition: Tempus_SolutionStateMetaData_decl.hpp:24
Tempus::SolutionStateMetaData::nConsecutiveFailures_
int nConsecutiveFailures_
Consecutive number of stepper failures.
Definition: Tempus_SolutionStateMetaData_decl.hpp:122
Tempus::SolutionStateMetaData::iStep_
int iStep_
Time step index for this solution.
Definition: Tempus_SolutionStateMetaData_decl.hpp:115
Tempus::SolutionStateMetaData::outputScreen_
bool outputScreen_
Output screen dump.
Definition: Tempus_SolutionStateMetaData_decl.hpp:135
Tempus::SolutionStateMetaData::SolutionStateMetaData
SolutionStateMetaData()
Default constructor.
Definition: Tempus_SolutionStateMetaData_impl.hpp:18
Tempus::SolutionStateMetaData::order_
Scalar order_
Order of this solution.
Definition: Tempus_SolutionStateMetaData_decl.hpp:119
Tempus::SolutionStateMetaData::getIStep
int getIStep() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:66
Tempus::SolutionStateMetaData::getDt
Scalar getDt() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:67
Tempus::SolutionStateMetaData::tolAbs_
Scalar tolAbs_
Relative tolerance.
Definition: Tempus_SolutionStateMetaData_decl.hpp:124
Tempus::SolutionStateMetaData::accuracy_
Scalar accuracy_
Interpolation accuracy of solution.
Definition: Tempus_SolutionStateMetaData_decl.hpp:142
Tempus::SolutionStateMetaData::tolRel_
Scalar tolRel_
Absolute tolerance.
Definition: Tempus_SolutionStateMetaData_decl.hpp:123
Tempus::SolutionStateMetaData::copy
void copy(const Teuchos::RCP< const SolutionStateMetaData< Scalar > > &ssmd)
This is a deep copy.
Definition: Tempus_SolutionStateMetaData_impl.hpp:117
Tempus::SolutionStateMetaData::errorRel_
Scalar errorRel_
Relative local truncation error.
Definition: Tempus_SolutionStateMetaData_decl.hpp:118
Tempus
Definition: Tempus_AdjointAuxSensitivityModelEvaluator_decl.hpp:20
Tempus::SolutionStateMetaData::getOutput
bool getOutput() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:75
Tempus::SolutionStateMetaData::setIsSynced
void setIsSynced(bool isSynced)
Definition: Tempus_SolutionStateMetaData_decl.hpp:97
Tempus::SolutionStateMetaData::nFailures_
int nFailures_
Total number of stepper failures.
Definition: Tempus_SolutionStateMetaData_decl.hpp:120
Tempus::SolutionStateMetaData::dt_
Scalar dt_
Time step for this solution.
Definition: Tempus_SolutionStateMetaData_decl.hpp:116
Tempus::SolutionStateMetaData::isSynced_
bool isSynced_
True - all of soln (x, xDot, xDotDot) is at the same time level. False - solution is at different tim...
Definition: Tempus_SolutionStateMetaData_decl.hpp:140
Tempus::SolutionStateMetaData::getTolRel
Scalar getTolRel() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:81
Tempus::SolutionStateMetaData::setDt
void setDt(Scalar dt)
Definition: Tempus_SolutionStateMetaData_decl.hpp:85
Tempus::SolutionStateMetaData::getOrder
Scalar getOrder() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:70
Tempus::SolutionStateMetaData::setTolAbs
void setTolAbs(Scalar tolAbs)
Definition: Tempus_SolutionStateMetaData_decl.hpp:101
Tempus::SolutionStateMetaData::isInterpolated_
bool isInterpolated_
F - soln is time integrated; T - soln is interpolated.
Definition: Tempus_SolutionStateMetaData_decl.hpp:141
Tempus::SolutionStateMetaData::nRunningFailures_
int nRunningFailures_
Total number of running stepper failures.
Definition: Tempus_SolutionStateMetaData_decl.hpp:121
Tempus::SolutionStateMetaData::setOrder
void setOrder(Scalar order)
Definition: Tempus_SolutionStateMetaData_decl.hpp:88
Tempus_Types.hpp
Tempus::SolutionStateMetaData::getIsSynced
bool getIsSynced() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:77
Tempus::SolutionStateMetaData::getNRunningFailures
int getNRunningFailures() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:72
Tempus::SolutionStateMetaData::errorAbs_
Scalar errorAbs_
Absolute local truncation error.
Definition: Tempus_SolutionStateMetaData_decl.hpp:117
Tempus::SolutionStateMetaData::getErrorRel
Scalar getErrorRel() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:69
Tempus::SolutionStateMetaData::setIStep
void setIStep(int iStep)
Definition: Tempus_SolutionStateMetaData_decl.hpp:84
Tempus::SolutionStateMetaData::~SolutionStateMetaData
virtual ~SolutionStateMetaData()
Destructor.
Definition: Tempus_SolutionStateMetaData_decl.hpp:61
Tempus::SolutionStateMetaData::setErrorRel
void setErrorRel(Scalar errorRel)
Definition: Tempus_SolutionStateMetaData_decl.hpp:87
Tempus::SolutionStateMetaData::getNConsecutiveFailures
int getNConsecutiveFailures() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:73
Tempus::SolutionStateMetaData::setIsInterpolated
void setIsInterpolated(bool isInterpolated)
Definition: Tempus_SolutionStateMetaData_decl.hpp:98
Tempus::SolutionStateMetaData::getAccuracy
Scalar getAccuracy() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:79
Tempus::SolutionStateMetaData::getOutputScreen
bool getOutputScreen() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:76
Tempus::SolutionStateMetaData::setTolRel
void setTolRel(Scalar tolRel)
Definition: Tempus_SolutionStateMetaData_decl.hpp:102
Tempus::SolutionStateMetaData::setSolutionStatus
void setSolutionStatus(Status solutionStatus)
Definition: Tempus_SolutionStateMetaData_decl.hpp:93
Tempus::SolutionStateMetaData::setErrorAbs
void setErrorAbs(Scalar errorAbs)
Definition: Tempus_SolutionStateMetaData_decl.hpp:86
Tempus::SolutionStateMetaData::time_
Scalar time_
Time of solution.
Definition: Tempus_SolutionStateMetaData_decl.hpp:114
Tempus::SolutionStateMetaData::getIsInterpolated
bool getIsInterpolated() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:78
Tempus::SolutionStateMetaData::setNConsecutiveFailures
void setNConsecutiveFailures(int nConsecutiveFailures)
Definition: Tempus_SolutionStateMetaData_decl.hpp:91
Tempus::SolutionStateMetaData::getNFailures
int getNFailures() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:71
Tempus::SolutionStateMetaData::getErrorAbs
Scalar getErrorAbs() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:68
Tempus::SolutionStateMetaData::setTime
void setTime(Scalar time)
Definition: Tempus_SolutionStateMetaData_decl.hpp:83
Tempus::SolutionStateMetaData::setOutputScreen
void setOutputScreen(bool outputScreen)
Definition: Tempus_SolutionStateMetaData_decl.hpp:96
Tempus::SolutionStateMetaData::describe
virtual void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
Definition: Tempus_SolutionStateMetaData_impl.hpp:146
Tempus::SolutionStateMetaData::setNFailures
void setNFailures(int nFailures)
Definition: Tempus_SolutionStateMetaData_decl.hpp:89
Tempus::SolutionStateMetaData::clone
Teuchos::RCP< SolutionStateMetaData< Scalar > > clone() const
Clone constructor.
Definition: Tempus_SolutionStateMetaData_impl.hpp:91
Tempus::SolutionStateMetaData::description
virtual std::string description() const
Definition: Tempus_SolutionStateMetaData_impl.hpp:138
Tempus::SolutionStateMetaData::setNRunningFailures
void setNRunningFailures(int nFailures)
Definition: Tempus_SolutionStateMetaData_decl.hpp:90
Tempus::SolutionStateMetaData::solutionStatus_
Status solutionStatus_
The solutionStatus is used to indicate.
Definition: Tempus_SolutionStateMetaData_decl.hpp:133
Tempus::SolutionStateMetaData::getSolutionStatus
Status getSolutionStatus() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:74
Tempus::SolutionStateMetaData::setOutput
void setOutput(bool output)
Definition: Tempus_SolutionStateMetaData_decl.hpp:95
Tempus::Status
Status
Status for the Integrator, the Stepper and the SolutionState.
Definition: Tempus_Types.hpp:16
Tempus::SolutionStateMetaData::output_
bool output_
SolutionState should be or has been outputted.
Definition: Tempus_SolutionStateMetaData_decl.hpp:134
Tempus::SolutionStateMetaData::getTime
Scalar getTime() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:65
Tempus::SolutionStateMetaData::setAccuracy
void setAccuracy(Scalar accuracy)
Definition: Tempus_SolutionStateMetaData_decl.hpp:100
Tempus::SolutionStateMetaData::getTolAbs
Scalar getTolAbs() const
Definition: Tempus_SolutionStateMetaData_decl.hpp:80