9 #ifndef Tempus_SolutionState_decl_hpp
10 #define Tempus_SolutionState_decl_hpp
13 #include "Teuchos_VerboseObject.hpp"
14 #include "Teuchos_Describable.hpp"
16 #include "Thyra_VectorBase.hpp"
17 #include "Thyra_ModelEvaluator.hpp"
19 #include "Tempus_config.hpp"
20 #include "Tempus_SolutionStateMetaData.hpp"
22 #include "Tempus_PhysicsState.hpp"
55 template<
class Scalar>
57 public Teuchos::Describable,
58 public Teuchos::VerboseObject<Tempus::SolutionState<Scalar> >
63 const Teuchos::RCP<Thyra::VectorBase<Scalar> >& x,
64 const Teuchos::RCP<Thyra::VectorBase<Scalar> >& xdot = Teuchos::null,
65 const Teuchos::RCP<Thyra::VectorBase<Scalar> >& xddot = Teuchos::null,
70 const Teuchos::RCP<
const Thyra::VectorBase<Scalar> >& x,
71 const Teuchos::RCP<
const Thyra::VectorBase<Scalar> >& xdot = Teuchos::null,
72 const Teuchos::RCP<
const Thyra::VectorBase<Scalar> >& xddot= Teuchos::null,
78 const Teuchos::RCP<Thyra::VectorBase<Scalar> >& x,
79 const Teuchos::RCP<Thyra::VectorBase<Scalar> >& xdot,
80 const Teuchos::RCP<Thyra::VectorBase<Scalar> >& xdotdot,
86 const Teuchos::RCP<
const Thyra::VectorBase<Scalar> >& x,
87 const Teuchos::RCP<
const Thyra::VectorBase<Scalar> >& xdot,
88 const Teuchos::RCP<
const Thyra::VectorBase<Scalar> >& xdotdot,
96 const Scalar errorAbs,
97 const Scalar errorRel,
100 const int nRunningFailures,
101 const int nConsecutiveFailures,
102 const Status solutionStatus,
104 const bool outputScreen,
106 const bool isInterpolated,
107 const Scalar accuracy,
108 const Teuchos::RCP<Thyra::VectorBase<Scalar> >& x,
109 const Teuchos::RCP<Thyra::VectorBase<Scalar> >& xdot,
110 const Teuchos::RCP<Thyra::VectorBase<Scalar> >& xdotdot,
118 const Scalar errorAbs,
119 const Scalar errorRel,
122 const int nRunningFailures,
123 const int nConsecutiveFailures,
124 const Status solutionStatus,
126 const bool outputScreen,
128 const bool isInterpolated,
129 const Scalar accuracy,
130 const Teuchos::RCP<
const Thyra::VectorBase<Scalar> >& x,
131 const Teuchos::RCP<
const Thyra::VectorBase<Scalar> >& xdot,
132 const Teuchos::RCP<
const Thyra::VectorBase<Scalar> >& xdotdot,
137 const Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> >& model,
145 virtual Teuchos::RCP<SolutionState<Scalar> >
clone()
const;
163 virtual Teuchos::RCP<const SolutionStateMetaData<Scalar> >
165 virtual Teuchos::RCP<SolutionStateMetaData<Scalar> >
getMetaData()
174 {
return metaData_->getSolutionStatus(); }
205 virtual Teuchos::RCP<Thyra::VectorBase<Scalar> >
getX()
206 { TEUCHOS_ASSERT(
x_nc_ != Teuchos::null);
208 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getX()
const
210 virtual Teuchos::RCP<Thyra::VectorBase<Scalar> >
getXDot()
212 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getXDot()
const
214 virtual Teuchos::RCP<Thyra::VectorBase<Scalar> >
getXDotDot()
216 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getXDotDot()
const
274 virtual void describe(Teuchos::FancyOStream &out,
275 const Teuchos::EVerbosityLevel verbLevel)
const;
282 Teuchos::RCP<const SolutionStateMetaData<Scalar> >
metaData_;
286 Teuchos::RCP<const Thyra::VectorBase<Scalar> >
x_;
287 Teuchos::RCP<Thyra::VectorBase<Scalar> >
x_nc_;
290 Teuchos::RCP<const Thyra::VectorBase<Scalar> >
xdot_;
294 Teuchos::RCP<const Thyra::VectorBase<Scalar> >
xdotdot_;
308 #endif // Tempus_SolutionState_decl_hpp