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_SNAPSHOTPREPROCESSOR_HPP 00007 #define MOR_SNAPSHOTPREPROCESSOR_HPP 00008 00009 #include "Epetra_MultiVector.h" 00010 #include "Epetra_Vector.h" 00011 00012 #include "Teuchos_RCP.hpp" 00013 00014 namespace MOR { 00015 00016 class SnapshotPreprocessor { 00017 public: 00018 virtual Teuchos::RCP<const Epetra_MultiVector> modifiedSnapshotSet() const = 0; 00019 virtual Teuchos::RCP<const Epetra_Vector> origin() const = 0; 00020 00021 virtual void rawSnapshotSetIs(const Teuchos::RCP<Epetra_MultiVector> &) = 0; 00022 00023 virtual ~SnapshotPreprocessor() {} 00024 00025 protected: 00026 SnapshotPreprocessor() {} 00027 00028 private: 00029 // Disallow copy and assigment 00030 SnapshotPreprocessor(const SnapshotPreprocessor &); 00031 SnapshotPreprocessor& operator=(const SnapshotPreprocessor &); 00032 }; 00033 00034 } // namespace MOR 00035 00036 #endif /* MOR_SNAPSHOTPREPROCESSOR_HPP */