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 241 bool operator< (const SolutionState<Scalar>& ss)
const;
244 bool operator<= (const SolutionState<Scalar>& ss)
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 virtual Status getSolutionStatus() const
PhysicsState is a simple class to hold information about the physics.
virtual Teuchos::RCP< StepperState< Scalar > > getStepperState()
virtual Scalar getTime() const
Teuchos::RCP< Thyra::VectorBase< Scalar > > xdot_nc_
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getXDot()
bool operator==(const SolutionState< Scalar > &ss) const
Equality comparison for matching.
bool operator<(const SolutionState< Scalar > &ss) const
Less than comparison for sorting based on time.
Teuchos::RCP< const SolutionStateMetaData< Scalar > > metaData_
Meta Data for the solution state.
virtual bool getIsSynced() const
Teuchos::RCP< Tempus::PhysicsState< Scalar > > physicsState_nc_
virtual Teuchos::RCP< SolutionState< Scalar > > clone() const
This is a deep copy constructor.
virtual Scalar getOrder() const
virtual Teuchos::RCP< const PhysicsState< Scalar > > getPhysicsState() const
Teuchos::RCP< const Tempus::StepperState< Scalar > > stepperState_
StepperState for this SolutionState.
virtual void setIsSynced(bool isSynced)
Teuchos::RCP< const Thyra::VectorBase< Scalar > > xdotdot_
Second time derivative of the solution.
Teuchos::RCP< const Tempus::PhysicsState< Scalar > > physicsState_
PhysicsState for this SolutionState.
bool operator<=(const SolutionState< Scalar > &ss) const
Less than comparison for sorting based on time.
virtual Teuchos::RCP< PhysicsState< Scalar > > getPhysicsState()
SolutionState(const Teuchos::RCP< Thyra::VectorBase< Scalar > > &x, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &xdot=Teuchos::null, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &xddot=Teuchos::null, const Teuchos::RCP< StepperState< Scalar > > &stepperState=Teuchos::null, const Teuchos::RCP< PhysicsState< Scalar > > &physicsState=Teuchos::null)
virtual void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
Teuchos::RCP< Thyra::VectorBase< Scalar > > xdotdot_nc_
StepperState is a simple class to hold state information about the stepper.
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getXDotDot() const
virtual void setIndex(Scalar index)
Status
Status for the Integrator, the Stepper and the SolutionState.
virtual void setTimeStep(Scalar dt)
virtual Scalar getTimeStep() const
virtual void copySolutionData(const Teuchos::RCP< const SolutionState< Scalar > > &s)
Deep copy solution data, but keep metaData untouched.
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getXDotDot()
virtual void setSolutionStatus(Status s)
bool operator>=(const SolutionState< Scalar > &ss) const
Less than comparison for sorting based on time.
virtual std::string description() const
Teuchos::RCP< const Thyra::VectorBase< Scalar > > x_
Solution.
virtual Teuchos::RCP< const StepperState< Scalar > > getStepperState() const
Teuchos::RCP< Thyra::VectorBase< Scalar > > x_nc_
virtual Teuchos::RCP< SolutionStateMetaData< Scalar > > getMetaData()
virtual Scalar getIndex() const
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getXDot() const
virtual ~SolutionState()
Destructor.
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getX() const
virtual Teuchos::RCP< const SolutionStateMetaData< Scalar > > getMetaData() const
virtual void setPhysicsState(const Teuchos::RCP< PhysicsState< Scalar > > &ps)
virtual bool getOutput() const
virtual void setMetaData(Teuchos::RCP< SolutionStateMetaData< Scalar > > md)
virtual void setMetaData(Teuchos::RCP< const SolutionStateMetaData< Scalar > > md)
virtual void setOrder(Scalar order)
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getX()
virtual void setTime(Scalar time)
Teuchos::RCP< Tempus::StepperState< Scalar > > stepperState_nc_
Teuchos::RCP< const Thyra::VectorBase< Scalar > > xdot_
Time derivative of the solution.
virtual void setOutput(bool output)
Solution state for integrators and steppers. SolutionState contains the metadata for solutions and th...
bool operator>(const SolutionState< Scalar > &ss) const
Less than comparison for sorting based on time.
virtual void swapSolutionData(const Teuchos::RCP< SolutionState< Scalar > > &ss)
Swap solution data, but keep metaData untouched.
Teuchos::RCP< SolutionStateMetaData< Scalar > > metaData_nc_
virtual void copy(const Teuchos::RCP< const SolutionState< Scalar > > &ss)
This is a deep copy.