00001 #ifndef AMESOS_SUPPORT_H 00002 #define AMESOS_SUPPORT_H 00003 00004 #include "Epetra_CrsMatrix.h" 00005 #include "Epetra_MultiVector.h" 00006 #include "Epetra_Map.h" 00007 00008 #ifdef HAVE_AMESOS_EPETRAEXT 00009 #include "EpetraExt_Reindex_CrsMatrix.h" 00010 #include "EpetraExt_Reindex_MultiVector.h" 00011 #endif 00012 00022 #if 0 00023 class Amesos_Support 00024 { 00025 public: 00027 Amesos_Support() {} 00028 00030 ~Amesos_Support() {} 00031 00032 }; 00033 #endif 00034 00035 #if 0 00037 Epetra_CrsMatrix* Amesos_StandardIndexMatrix( const Epetra_CrsMatrix&* OriginalMatrix ); 00038 #endif 00039 00040 class Amesos_StandardIndex 00041 { 00042 public: 00044 Amesos_StandardIndex( const Epetra_Map& OriginalMap ) ; 00045 00047 ~Amesos_StandardIndex() {} 00048 00049 #ifdef HAVE_AMESOS_EPETRAEXT 00051 Epetra_MultiVector* StandardizeIndex( Epetra_MultiVector* OriginalMultiVector ); 00052 00054 Epetra_CrsMatrix* StandardizeIndex( Epetra_CrsMatrix* OriginalCrsMatrix ); 00055 00057 Epetra_Map* StdIndexMap() { 00058 return &*StdIndexMap_ ; 00059 } 00060 #endif 00061 00062 00063 00064 private: 00065 #ifdef HAVE_AMESOS_EPETRAEXT 00067 Teuchos::RCP<Epetra_Map> StdIndexMap_; 00069 Teuchos::RCP<EpetraExt::CrsMatrix_Reindex> MatTrans_; 00071 Teuchos::RCP<EpetraExt::MultiVector_Reindex> VecTrans_; 00072 #endif 00073 } ; 00074 #endif