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_CONCATENATEDEPETRAMVSOURCE_HPP 00007 #define MOR_CONCATENATEDEPETRAMVSOURCE_HPP 00008 00009 #include "MOR_EpetraMVSource.hpp" 00010 00011 #include "Teuchos_ArrayView.hpp" 00012 #include "Teuchos_Array.hpp" 00013 00014 namespace MOR { 00015 00016 class ConcatenatedEpetraMVSource : public BasicEpetraMVSource { 00017 public: 00018 ConcatenatedEpetraMVSource( 00019 const Epetra_Map &vectorMap, 00020 const Teuchos::ArrayView<const Teuchos::RCP<EpetraMVSource> > &sources); 00021 00022 virtual int vectorCount() const; 00023 virtual Epetra_Map vectorMap() const; 00024 00025 virtual Teuchos::RCP<Epetra_MultiVector> multiVectorNew(); 00026 00027 private: 00028 const Epetra_Map vectorMap_; 00029 00030 typedef Teuchos::Array<Teuchos::RCP<EpetraMVSource> > SourceList; 00031 SourceList sources_; 00032 00033 int vectorCount_; 00034 }; 00035 00036 } // end namespace MOR 00037 00038 #endif /*MOR_CONCATENATEDEPETRAMVSOURCE_HPP*/