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 00007 #ifndef ALBANY_RYTHMOSOBSERVER 00008 #define ALBANY_RYTHMOSOBSERVER 00009 00010 #include "Rythmos_IntegrationObserverBase.hpp" 00011 00012 #include "Albany_Application.hpp" 00013 #include "Albany_ObserverImpl.hpp" 00014 00015 class Albany_RythmosObserver : public Rythmos::IntegrationObserverBase<RealType> 00016 { 00017 public: 00018 Albany_RythmosObserver ( 00019 const Teuchos::RCP<Albany::Application> &app_); 00020 00021 ~Albany_RythmosObserver () 00022 { }; 00023 00024 typedef RealType ScalarType; 00025 00026 Teuchos::RCP<Rythmos::IntegrationObserverBase<ScalarType> > 00027 cloneIntegrationObserver() const 00028 { TEUCHOS_TEST_FOR_EXCEPT(true);}; 00029 00030 void resetIntegrationObserver( 00031 const Rythmos::TimeRange<ScalarType> &integrationTimeDomain 00032 ) 00033 { }; 00034 00035 // Print initial condition 00036 void observeStartTimeStep( 00037 const Rythmos::StepperBase<ScalarType> &stepper, 00038 const Rythmos::StepControlInfo<ScalarType> &stepCtrlInfo, 00039 const int timeStepIter 00040 ); 00041 00042 void observeCompletedTimeStep( 00043 const Rythmos::StepperBase<ScalarType> &stepper, 00044 const Rythmos::StepControlInfo<ScalarType> &stepCtrlInfo, 00045 const int timeStepIter 00046 ); 00047 00048 private: 00049 Albany::ObserverImpl impl; 00050 00051 bool initial_step; 00052 00053 }; 00054 00055 #endif //ALBANY_RYTHMOSOBSERVER