Epetra_CrsGraphData.h

Go to the documentation of this file.
00001 
00002 //@HEADER
00003 /*
00004 ************************************************************************
00005 
00006               Epetra: Linear Algebra Services Package 
00007                 Copyright (2001) Sandia Corporation
00008 
00009 Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00010 license for use of this work by or on behalf of the U.S. Government.
00011 
00012 This library is free software; you can redistribute it and/or modify
00013 it under the terms of the GNU Lesser General Public License as
00014 published by the Free Software Foundation; either version 2.1 of the
00015 License, or (at your option) any later version.
00016  
00017 This library is distributed in the hope that it will be useful, but
00018 WITHOUT ANY WARRANTY; without even the implied warranty of
00019 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00020 Lesser General Public License for more details.
00021  
00022 You should have received a copy of the GNU Lesser General Public
00023 License along with this library; if not, write to the Free Software
00024 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00025 USA
00026 Questions? Contact Michael A. Heroux (maherou@sandia.gov) 
00027 
00028 ************************************************************************
00029 */
00030 //@HEADER
00031 
00032 #ifndef EPETRA_CRSGRAPHDATA_H
00033 #define EPETRA_CRSGRAPHDATA_H
00034 
00035 #include "Epetra_Data.h"
00036 #include "Epetra_DataAccess.h"
00037 #include "Epetra_BlockMap.h"
00038 #include "Epetra_IntSerialDenseVector.h"
00039 class Epetra_Import;
00040 class Epetra_Export;
00041 
00043 
00048 class Epetra_CrsGraphData : public Epetra_Data {
00049   friend class Epetra_CrsGraph;
00050 
00051  private:
00052 
00054 
00055 
00057   Epetra_CrsGraphData(Epetra_DataAccess CV, const Epetra_BlockMap& RowMap, bool StaticProfile);
00058 
00060   Epetra_CrsGraphData(Epetra_DataAccess CV, const Epetra_BlockMap& RowMap, const Epetra_BlockMap& ColMap, bool StaticProfile);
00061 
00063   Epetra_CrsGraphData(const Epetra_CrsGraphData& CrsGraphData);
00064 
00066   ~Epetra_CrsGraphData();
00067 
00069 
00071 
00077   void Print(ostream& os, int level = 3) const;
00078 
00080   Epetra_CrsGraphData& operator=(const Epetra_CrsGraphData& CrsGraphData);
00081   
00083 
00084   
00086   int MakeImportExport();
00087   
00089   int ReAllocateAndCast(char*& UserPtr, int& Length, const int IntPacketSizeTimesNumTrans);
00090   
00092   
00093   // Defined by CrsGraph::FillComplete and related
00094   Epetra_BlockMap RowMap_;
00095   Epetra_BlockMap ColMap_;
00096   Epetra_BlockMap DomainMap_;
00097   Epetra_BlockMap RangeMap_;
00098   
00099   const Epetra_Import* Importer_;
00100   const Epetra_Export* Exporter_;
00101 
00102   bool HaveColMap_;
00103   bool Filled_;
00104   bool Allocated_;
00105   bool Sorted_;
00106   bool StorageOptimized_;
00107   bool NoRedundancies_;
00108   bool IndicesAreGlobal_;
00109   bool IndicesAreLocal_;
00110   bool IndicesAreContiguous_;
00111   bool LowerTriangular_;
00112   bool UpperTriangular_;
00113   bool NoDiagonal_;
00114   bool GlobalConstantsComputed_;
00115   bool StaticProfile_;
00116 
00117   int IndexBase_;
00118 
00119   int NumGlobalEntries_;
00120   int NumGlobalBlockRows_;
00121   int NumGlobalBlockCols_;
00122   int NumGlobalBlockDiagonals_;
00123   int NumMyEntries_;
00124   int NumMyBlockRows_;
00125   int NumMyBlockCols_;
00126   int NumMyBlockDiagonals_;
00127   
00128   int MaxRowDim_;
00129   int MaxColDim_;
00130   int GlobalMaxRowDim_;
00131   int GlobalMaxColDim_;
00132   int MaxNumNonzeros_;
00133   int GlobalMaxNumNonzeros_;
00134   
00135   int NumGlobalNonzeros_;
00136   int NumGlobalRows_;
00137   int NumGlobalCols_;
00138   int NumGlobalDiagonals_;
00139   int NumMyNonzeros_;
00140   int NumMyRows_;
00141   int NumMyCols_;
00142   int NumMyDiagonals_;
00143 
00144   int MaxNumIndices_;
00145   int GlobalMaxNumIndices_;
00146   
00147   int** Indices_;
00148   Epetra_IntSerialDenseVector NumAllocatedIndicesPerRow_;
00149   Epetra_IntSerialDenseVector NumIndicesPerRow_;
00150   Epetra_IntSerialDenseVector IndexOffset_;
00151   Epetra_IntSerialDenseVector All_Indices_;
00152   Epetra_DataAccess CV_;
00153   
00154 };
00155 
00156 #endif /* EPETRA_CRSGRAPHDATA_H */

Generated on Thu Sep 18 12:37:57 2008 for Epetra Package Browser (Single Doxygen Collection) by doxygen 1.3.9.1