9#ifndef Tempus_SolutionState_decl_hpp
10#define Tempus_SolutionState_decl_hpp
12#include "Teuchos_VerboseObject.hpp"
13#include "Teuchos_Describable.hpp"
15#include "Thyra_VectorBase.hpp"
16#include "Thyra_ModelEvaluator.hpp"
18#include "Tempus_config.hpp"
19#include "Tempus_SolutionStateMetaData.hpp"
21#include "Tempus_PhysicsState.hpp"
57 public Teuchos::Describable,
58 public Teuchos::VerboseObject<Tempus::SolutionState<Scalar> >
89 virtual Teuchos::RCP<SolutionState<Scalar> >
clone()
const;
103 virtual Teuchos::RCP<const SolutionStateMetaData<Scalar> >
105 virtual Teuchos::RCP<SolutionStateMetaData<Scalar> >
getMetaData()
161 metaData_nc_->setNConsecutiveFailures(nConsecutiveFailures); }
180 if (sStatus.solveStatus == Thyra::SOLVE_STATUS_CONVERGED )
200 virtual Teuchos::RCP<Thyra::VectorBase<Scalar> >
getX()
201 { TEUCHOS_ASSERT(
x_nc_ != Teuchos::null);
203 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getX()
const
205 virtual Teuchos::RCP<Thyra::VectorBase<Scalar> >
getXDot()
207 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getXDot()
const
209 virtual Teuchos::RCP<Thyra::VectorBase<Scalar> >
getXDotDot()
211 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getXDotDot()
const
231 {
x_nc_ = Teuchos::null;
x_ = x; }
289 virtual void describe(Teuchos::FancyOStream &out,
290 const Teuchos::EVerbosityLevel verbLevel)
const;
301 Teuchos::RCP<const SolutionStateMetaData<Scalar> >
metaData_;
305 Teuchos::RCP<const Thyra::VectorBase<Scalar> >
x_;
306 Teuchos::RCP<Thyra::VectorBase<Scalar> >
x_nc_;
309 Teuchos::RCP<const Thyra::VectorBase<Scalar> >
xdot_;
313 Teuchos::RCP<const Thyra::VectorBase<Scalar> >
xdotdot_;
328template<
class Scalar>
329Teuchos::RCP<SolutionState<Scalar> >
336template<
class Scalar>
337Teuchos::RCP<SolutionState<Scalar> >
344template<
class Scalar>
345Teuchos::RCP<SolutionState<Scalar> >
PhysicsState is a simple class to hold information about the physics.
Solution state for integrators and steppers. SolutionState contains the metadata for solutions and th...
virtual void setStepperState(Teuchos::RCP< StepperState< Scalar > > &ss)
virtual void setNConsecutiveFailures(int nConsecutiveFailures)
Teuchos::RCP< SolutionStateMetaData< Scalar > > metaData_nc_
virtual void setIsInterpolated(bool isInterpolated)
Teuchos::RCP< Thyra::VectorBase< Scalar > > x_nc_
virtual int getNConsecutiveFailures() const
virtual void setXDotDot(Teuchos::RCP< const Thyra::VectorBase< Scalar > > xdotdot)
virtual Scalar getErrorRelNm2() const
virtual Scalar getDxNormL2Rel() const
Teuchos::RCP< const Thyra::VectorBase< Scalar > > x_
Solution.
virtual Scalar getDxNormL2Abs() const
virtual void setNFailures(int nFailures)
virtual void setOutput(bool output)
virtual Scalar getTimeStep() const
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getXDot() const
virtual bool getComputeNorms() const
virtual bool getIsSynced() const
virtual Scalar getErrorRel() const
virtual void setMetaData(Teuchos::RCP< const SolutionStateMetaData< Scalar > > md)
virtual void copy(const Teuchos::RCP< const SolutionState< Scalar > > &ss)
This is a deep copy.
virtual void setErrorAbs(Scalar errorAbs)
virtual void setXDot(Teuchos::RCP< Thyra::VectorBase< Scalar > > xdot)
virtual void setStepperState(const Teuchos::RCP< StepperState< Scalar > > &ss)
virtual void setOutputScreen(bool output)
virtual void setTolAbs(Scalar tolAbs)
virtual void computeNorms(const Teuchos::RCP< const SolutionState< Scalar > > &ssIn=Teuchos::null)
Compute the solution norms, and solution change from ssIn, if provided.
Teuchos::RCP< StepperState< Scalar > > stepperState_nc_
Teuchos::RCP< const SolutionStateMetaData< Scalar > > metaData_
Meta Data for the solution state.
virtual void setXNormL2(Scalar xNormL2)
virtual void setIndex(Scalar index)
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getX() const
virtual void setX(Teuchos::RCP< const Thyra::VectorBase< Scalar > > x)
virtual std::string description() const
virtual void setAccuracy(bool accuracy)
virtual void setSolutionStatus(Status s)
Teuchos::RCP< const Thyra::VectorBase< Scalar > > xdotdot_
Second time derivative of the solution.
virtual void copySolutionData(const Teuchos::RCP< const SolutionState< Scalar > > &s)
Deep copy solution data, but keep metaData untouched.
virtual void setPhysicsState(const Teuchos::RCP< PhysicsState< Scalar > > &ps)
virtual Teuchos::RCP< PhysicsState< Scalar > > getPhysicsState()
virtual void setX(Teuchos::RCP< Thyra::VectorBase< Scalar > > x)
virtual Scalar getErrorAbs() const
virtual void setPhysicsState(Teuchos::RCP< PhysicsState< Scalar > > &ps)
virtual Scalar getXNormL2() const
SolutionState()
Default Constructor – Not meant for immediate adding to SolutionHistory. This constructor does not se...
virtual Teuchos::RCP< StepperState< Scalar > > getStepperState()
virtual void setTime(Scalar time)
Teuchos::RCP< const PhysicsState< Scalar > > physicsState_
PhysicsState for this SolutionState.
virtual Status getSolutionStatus() const
virtual int getNFailures() const
virtual Scalar getTime() const
virtual ~SolutionState()
Destructor.
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getX()
virtual void setXDotDot(Teuchos::RCP< Thyra::VectorBase< Scalar > > xdotdot)
virtual void setErrorRel(Scalar errorRel)
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getXDotDot()
virtual int getIndex() const
virtual Scalar getTolRel() const
virtual void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
bool operator==(const SolutionState< Scalar > &ss) const
Equality comparison for matching.
virtual Teuchos::RCP< const PhysicsState< Scalar > > getPhysicsState() const
Teuchos::RCP< Thyra::VectorBase< Scalar > > xdotdot_nc_
bool operator<(const SolutionState< Scalar > &ss) const
Less than comparison for sorting based on time.
virtual void setOrder(int order)
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getXDotDot() const
virtual Scalar getErrorRelNm1() const
virtual void setDxNormL2Rel(Scalar dxNormL2Rel)
virtual void setTimeStep(Scalar dt)
virtual Teuchos::RCP< const StepperState< Scalar > > getStepperState() const
bool operator>(const SolutionState< Scalar > &ss) const
Less than comparison for sorting based on time.
virtual void setXDot(Teuchos::RCP< const Thyra::VectorBase< Scalar > > xdot)
bool operator<=(const SolutionState< Scalar > &ss) const
Less than comparison for sorting based on time.
virtual Teuchos::RCP< SolutionStateMetaData< Scalar > > getMetaData()
virtual void setSolutionStatus(const Thyra::SolveStatus< Scalar > sStatus)
virtual bool getAccuracy() const
virtual void setNRunningFailures(int nFailures)
Teuchos::RCP< const StepperState< Scalar > > stepperState_
StepperState for this SolutionState.
virtual void setDxNormL2Abs(Scalar dxNormL2Abs)
virtual void setTolRel(Scalar tolRel)
virtual void setMetaData(Teuchos::RCP< SolutionStateMetaData< Scalar > > md)
virtual int getOrder() const
virtual bool getOutputScreen() const
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getXDot()
virtual void setIsSynced(bool isSynced)
bool operator>=(const SolutionState< Scalar > &ss) const
Less than comparison for sorting based on time.
Teuchos::RCP< PhysicsState< Scalar > > physicsState_nc_
virtual int getNRunningFailures() const
virtual Teuchos::RCP< SolutionState< Scalar > > clone() const
This is a deep copy constructor.
virtual bool getOutput() const
virtual bool getIsInterpolated() const
virtual Scalar getTolAbs() const
virtual void setComputeNorms(bool computeNorms)
Teuchos::RCP< const Thyra::VectorBase< Scalar > > xdot_
Time derivative of the solution.
virtual Teuchos::RCP< const SolutionStateMetaData< Scalar > > getMetaData() const
Teuchos::RCP< Thyra::VectorBase< Scalar > > xdot_nc_
StepperState is a simple class to hold state information about the stepper.
Teuchos::RCP< SolutionState< Scalar > > createSolutionStateME(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model, const Teuchos::RCP< StepperState< Scalar > > &stepperState=Teuchos::null, const Teuchos::RCP< PhysicsState< Scalar > > &physicsState=Teuchos::null)
Nonmember constructor from Thyra ModelEvaluator.
Status
Status for the Integrator, the Stepper and the SolutionState.
Teuchos::RCP< SolutionState< Scalar > > createSolutionStateX(const Teuchos::RCP< Thyra::VectorBase< Scalar > > &x, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &xdot=Teuchos::null, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &xdotdot=Teuchos::null)
Nonmember constructor from non-const solution vectors, x.