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_GENERALIZEDCOORDINATESOUTPUT_HPP 00007 #define MOR_GENERALIZEDCOORDINATESOUTPUT_HPP 00008 00009 #include "Epetra_Vector.h" 00010 00011 #include "Teuchos_RCP.hpp" 00012 #include "Teuchos_Array.hpp" 00013 00014 #include <string> 00015 #include <deque> 00016 00017 namespace MOR { 00018 00019 class GeneralizedCoordinatesOutput { 00020 public: 00021 GeneralizedCoordinatesOutput(const std::string &filename, const std::string &stampsFilename); 00022 00023 int vectorCount() const; 00024 void vectorAdd(const Epetra_Vector &v); 00025 void stampedVectorAdd(double stamp, const Epetra_Vector &v); 00026 00027 ~GeneralizedCoordinatesOutput(); // Non-trivial destructor 00028 00029 private: 00030 std::string filename_; 00031 std::string stampsFilename_; 00032 00033 std::deque<Epetra_Vector> projectionComponents_; 00034 Teuchos::Array<double> stamps_; 00035 00036 // Disallow copy & assignment 00037 GeneralizedCoordinatesOutput(const GeneralizedCoordinatesOutput &); 00038 GeneralizedCoordinatesOutput &operator=(const GeneralizedCoordinatesOutput &); 00039 }; 00040 00041 } // end namespace MOR 00042 00043 #endif /* MOR_GENERALIZEDCOORDINATESOUTPUT_HPP */