• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

MOR_RythmosStepperFullStateWrapper.hpp

Go to the documentation of this file.
00001 //*****************************************************************//
00002 //    Albany 2.0:  Copyright 2012 Sandia Corporation               //
00003 //    This Software is released under the BSD license detailed     //
00004 //    in the file "license.txt" in the top-level Albany directory  //
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   // Overriden from Teuchos::ParameterListAcceptor
00024   //
00025 
00026   virtual void setParameterList(const Teuchos::RCP<Teuchos::ParameterList> &paramList);
00027   virtual Teuchos::RCP<Teuchos::ParameterList> getNonconstParameterList();
00028   virtual Teuchos::RCP<Teuchos::ParameterList> unsetParameterList();
00029 
00030   //
00031   // Overriden from Rythmos::InterpolationBufferBase<double>
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   // Overriden from Rythmos::StepperBase<double>
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 } // namespace MOR
00083 
00084 #endif /*MOR_RYTHMOSSTEPPERFULLSTATEWRAPPER_HPP*/

Generated on Wed Mar 26 2014 18:36:40 for Albany: a Trilinos-based PDE code by  doxygen 1.7.1