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_SNAPSHOTCOLLECTION_HPP 00007 #define MOR_SNAPSHOTCOLLECTION_HPP 00008 00009 #include "Epetra_Vector.h" 00010 00011 #include "Teuchos_RCP.hpp" 00012 00013 #include <deque> 00014 00015 namespace MOR { 00016 00017 class MultiVectorOutputFile; 00018 00019 class SnapshotCollection { 00020 public: 00021 SnapshotCollection( 00022 int period, 00023 const Teuchos::RCP<MultiVectorOutputFile> &snapshotFile); 00024 00025 ~SnapshotCollection(); 00026 void addVector(double stamp, const Epetra_Vector &value); 00027 00028 private: 00029 int period_; 00030 Teuchos::RCP<MultiVectorOutputFile> snapshotFile_; 00031 00032 int skipCount_; 00033 std::deque<double> stamps_; 00034 std::deque<Epetra_Vector> snapshots_; 00035 00036 // Disallow copy and assignment 00037 SnapshotCollection(const SnapshotCollection &); 00038 SnapshotCollection &operator=(const SnapshotCollection &); 00039 }; 00040 00041 } // namespace MOR 00042 00043 #endif /*MOR_SNAPSHOTCOLLECTION_HPP*/