Go to the documentation of this file.00001
00002
00003
00004
00005
00006 #ifndef MOR_RYTHMOSSTEPPERFULLSTATEWRAPPER_HPP
00007 #define MOR_RYTHMOSSTEPPERFULLSTATEWRAPPER_HPP
00008
00009 #include "Rythmos_StepperBase.hpp"
00010
00011 class Epetra_Map;
00012
00013 namespace MOR {
00014
00015 class ReducedSpace;
00016
00017 class RythmosStepperFullStateWrapper : public Rythmos::StepperBase<double> {
00018 public:
00019 RythmosStepperFullStateWrapper(const Teuchos::RCP<const Rythmos::StepperBase<double> > &wrappedStepper,
00020 const Teuchos::RCP<const ReducedSpace> &reducedSpace);
00021
00022
00023
00024
00025
00026 virtual void setParameterList(const Teuchos::RCP<Teuchos::ParameterList> ¶mList);
00027 virtual Teuchos::RCP<Teuchos::ParameterList> getNonconstParameterList();
00028 virtual Teuchos::RCP<Teuchos::ParameterList> unsetParameterList();
00029
00030
00031
00032
00033
00034 virtual Teuchos::RCP<const Thyra::VectorSpaceBase<double> > get_x_space() const;
00035
00036 virtual void addPoints(const Teuchos::Array<double> &time_vec,
00037 const Teuchos::Array<Teuchos::RCP<const Thyra::VectorBase<double> > > &x_vec,
00038 const Teuchos::Array<Teuchos::RCP<const Thyra::VectorBase<double> > > &xdot_vec);
00039 virtual void getPoints(const Teuchos::Array<double> &time_vec,
00040 Teuchos::Array<Teuchos::RCP<const Thyra::VectorBase<double> > > *x_vec,
00041 Teuchos::Array<Teuchos::RCP<const Thyra::VectorBase<double> > > *xdot_vec,
00042 Teuchos::Array<ScalarMag> *accuracy_vec) const;
00043
00044 virtual void getNodes(Teuchos::Array<double> *time_vec) const;
00045 virtual void removeNodes(Teuchos::Array<double> &time_vec);
00046
00047 virtual int getOrder() const;
00048
00049 virtual Rythmos::TimeRange<double> getTimeRange() const;
00050
00051
00052
00053
00054
00055 virtual bool supportsCloning() const;
00056 virtual Teuchos::RCP<Rythmos::StepperBase<double> > cloneStepperAlgorithm() const;
00057
00058 virtual bool isImplicit() const;
00059
00060 virtual bool acceptsModel() const;
00061 virtual void setModel(const Teuchos::RCP<const Thyra::ModelEvaluator<double> > &model);
00062 virtual void setNonconstModel(const Teuchos::RCP<Thyra::ModelEvaluator<double> > &model);
00063 virtual bool modelIsConst() const;
00064 virtual Teuchos::RCP<const Thyra::ModelEvaluator<double> > getModel() const;
00065 virtual Teuchos::RCP<Thyra::ModelEvaluator<double> > getNonconstModel();
00066
00067 virtual void setInitialCondition(const Thyra::ModelEvaluatorBase::InArgs<double>& initialCondition);
00068 virtual Thyra::ModelEvaluatorBase::InArgs<double> getInitialCondition() const;
00069
00070 virtual double takeStep(double dt, Rythmos::StepSizeType stepType);
00071 virtual const Rythmos::StepStatus<double> getStepStatus() const;
00072 virtual void setStepControlData(const Rythmos::StepperBase<double> &stepper);
00073
00074 private:
00075 Teuchos::RCP<const Rythmos::StepperBase<double> > wrappedStepper_;
00076 Teuchos::RCP<const ReducedSpace> reducedSpace_;
00077 Teuchos::RCP<const Epetra_Map> fullMap_;
00078
00079 void failNonconstFunction();
00080 };
00081
00082 }
00083
00084 #endif