fei_Aztec_Map.hpp

00001 #ifndef _fei_Aztec_Map_hpp_
00002 #define _fei_Aztec_Map_hpp_
00003 
00004 /*--------------------------------------------------------------------*/
00005 /*    Copyright 2005 Sandia Corporation.                              */
00006 /*    Under the terms of Contract DE-AC04-94AL85000, there is a       */
00007 /*    non-exclusive license for use of this work by or on behalf      */
00008 /*    of the U.S. Government.  Export of this program may require     */
00009 /*    a license from the United States Government.                    */
00010 /*--------------------------------------------------------------------*/
00011 
00012 //
00013 // This Aztec_Map class is a wrapper that encapsulates the general
00014 // information needed to describe the layout of an Aztec matrix or
00015 // vector structure. It is a companion/support class that goes with
00016 // the three data class wrappers Aztec_Vector, AztecDMSR_Matrix and
00017 // AztecDVBR_Matrix (the Aztec_BlockMap specialization is also
00018 // required for DVBR).
00019 //
00020 // Aztec_Map allows the storage and retrieval of information such as
00021 // local and global sizes, the MPI communicator, and the proc_config array.
00022 //
00023 namespace fei_trilinos {
00024 
00025 class Aztec_Map {
00026     
00027   public:
00028     Aztec_Map(int globalSize, int localSize, int localOffset,
00029               MPI_Comm comm);
00030 
00031     Aztec_Map(const Aztec_Map& map);            // copy constructor    
00032     virtual ~Aztec_Map(void);
00033 
00034     virtual const int& localSize() const {return(localSize_);};
00035     virtual const int& globalSize() const {return(globalSize_);};
00036     virtual const int& localOffset() const {return(localOffset_);};
00037 
00038     virtual MPI_Comm getCommunicator() const {return(comm_);};
00039 
00040     virtual int* getProcConfig() const {return(proc_config_);};
00041 
00042   private:
00043     void checkInput();
00044 
00045     int globalSize_;
00046     int localSize_;
00047     int localOffset_;
00048 
00049     MPI_Comm comm_;
00050 
00051     int* proc_config_;  //Aztec information container
00052 };
00053 
00054 }//namespace fei_trilinos
00055 
00056 #endif
00057 

Generated on Wed May 12 21:30:40 2010 for FEI by  doxygen 1.4.7