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_MULTIVECTOROUTPUTFILE_HPP 00007 #define MOR_MULTIVECTOROUTPUTFILE_HPP 00008 00009 #include "Epetra_MultiVector.h" 00010 #include "Epetra_Map.h" 00011 00012 #include "Teuchos_RCP.hpp" 00013 00014 #include <string> 00015 00016 namespace MOR { 00017 00018 class MultiVectorOutputFile { 00019 public: 00020 std::string path() const { return path_; } 00021 00022 virtual void write(const Epetra_MultiVector &mv) = 0; 00023 00024 virtual ~MultiVectorOutputFile(); 00025 00026 protected: 00027 explicit MultiVectorOutputFile(const std::string &path); 00028 00029 private: 00030 std::string path_; 00031 00032 // Disallow copy and assignment 00033 MultiVectorOutputFile(const MultiVectorOutputFile &); 00034 MultiVectorOutputFile &operator=(const MultiVectorOutputFile &); 00035 }; 00036 00037 inline 00038 MultiVectorOutputFile::MultiVectorOutputFile(const std::string &path) : 00039 path_(path) 00040 { 00041 // Nothing to do 00042 } 00043 00044 inline 00045 MultiVectorOutputFile::~MultiVectorOutputFile() 00046 { 00047 // Nothing to do 00048 } 00049 00050 } // namespace MOR 00051 00052 #endif /* MOR_MULTIVECTOROUTPUTFILE_HPP */