00001
00002
00003
00004
00005
00006
00007
00008 #ifndef SRC_AMG_MKB_AMG_ROWDATA_HPP_
00009 #define SRC_AMG_MKB_AMG_ROWDATA_HPP_
00010
00011 #include <map>
00012 #include <petscsys.h>
00013
00014
00015 class RowData {
00016 public:
00017 RowData(int world_size,const PetscInt *ranges);
00018 virtual ~RowData();
00019 PetscInt GetRowData(PetscInt column_index);
00020 int GetRowDataOwner(PetscInt column_index);
00021 void AddRowDataRequest(PetscInt column_index);
00022 void GetRowDataRequestSizes(int* row_data_request_sizes);
00023 int FillExchangeRequest(PetscInt* exchangeBuffer, int rank);
00024 void FillExchangeResponse(PetscInt* exchangeBuffer, int rank);
00025 void Print(int rank);
00026 private:
00027 std::map<PetscInt, PetscInt>** row_data;
00028 int world_size;
00029 const PetscInt *ranges;
00030 };
00031
00032 #endif