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_GENERALIZEDCOORDINATESRYTHMOSOBSERVERBSERVER_HPP 00007 #define MOR_GENERALIZEDCOORDINATESRYTHMOSOBSERVERBSERVER_HPP 00008 00009 #include "Rythmos_IntegrationObserverBase.hpp" 00010 00011 #include "MOR_GeneralizedCoordinatesOutput.hpp" 00012 00013 namespace MOR { 00014 00015 class GeneralizedCoordinatesRythmosObserver : public Rythmos::IntegrationObserverBase<double> { 00016 public: 00017 GeneralizedCoordinatesRythmosObserver(const std::string &filename, const std::string &stampsFilename); 00018 00019 // Overridden 00020 virtual Teuchos::RCP<Rythmos::IntegrationObserverBase<double> > cloneIntegrationObserver() const; 00021 00022 virtual void resetIntegrationObserver(const Rythmos::TimeRange<double> &integrationTimeDomain); 00023 00024 virtual void observeStartTimeIntegration(const Rythmos::StepperBase<double> &stepper); 00025 00026 virtual void observeCompletedTimeStep( 00027 const Rythmos::StepperBase<double> &stepper, 00028 const Rythmos::StepControlInfo<double> &stepCtrlInfo, 00029 const int timeStepIter); 00030 00031 private: 00032 GeneralizedCoordinatesOutput impl_; 00033 00034 virtual void observeTimeStep(const Rythmos::StepperBase<double> &stepper); 00035 }; 00036 00037 } // end namespace MOR 00038 00039 #endif /*MOR_GENERALIZEDCOORDINATESRYTHMOSOBSERVERBSERVER_HPP*/