Epetra_Import.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_IMPORT_H
00033 #define EPETRA_IMPORT_H
00034 
00035 #include "Epetra_Object.h"
00036 #include "Epetra_BlockMap.h"
00037 class Epetra_Distributor;
00038 
00040 
00050 class Epetra_Import: public Epetra_Object {
00051     
00052   public:
00053 
00055 
00218   Epetra_Import( const Epetra_BlockMap & TargetMap, const Epetra_BlockMap & SourceMap );
00219   
00221   Epetra_Import(const Epetra_Import& Importer);
00222   
00224   
00225   virtual ~Epetra_Import(void);
00227   int NumSameIDs() const {return(NumSameIDs_);};
00228 
00230   int NumPermuteIDs() const {return(NumPermuteIDs_);};
00231 
00233   int * PermuteFromLIDs () const {return(PermuteFromLIDs_);};
00235   int * PermuteToLIDs () const {return(PermuteToLIDs_);};
00236 
00238   int NumRemoteIDs() const {return(NumRemoteIDs_);};
00239   
00241   int * RemoteLIDs() const {return(RemoteLIDs_);};
00242 
00244   int  NumExportIDs () const {return(NumExportIDs_);};
00245 
00247   int * ExportLIDs () const {return(ExportLIDs_);};
00248 
00250   int * ExportPIDs () const {return(ExportPIDs_);};
00251 
00253   int NumSend() const {return(NumSend_);};
00254 
00256   int NumRecv() const {return(NumRecv_);};
00257 
00259   const Epetra_BlockMap & SourceMap() const {return(SourceMap_);};
00260 
00262   const Epetra_BlockMap & TargetMap() const {return(TargetMap_);};
00263 
00264   Epetra_Distributor & Distributor() const {return(*Distor_);};
00265 
00267 
00268   virtual void Print(ostream & os) const;
00270  protected:
00271 
00272  friend class Epetra_BlockMap;
00273 
00274  private:
00275  Epetra_Import& operator=(const Epetra_Import& src)
00276    {
00277      (void)src;
00278      //not currently supported
00279      bool throw_error = true;
00280      if (throw_error) {
00281        throw ReportError("Epetra_Import::operator= not supported.",-1);
00282      }
00283      return(*this);
00284    }
00285 
00286  Epetra_BlockMap TargetMap_;
00287  Epetra_BlockMap SourceMap_;
00288 
00289   int  NumSameIDs_;
00290   int  NumPermuteIDs_;
00291   int * PermuteToLIDs_;
00292   int * PermuteFromLIDs_;
00293   int  NumRemoteIDs_;
00294   int * RemoteLIDs_;
00295 
00296   int  NumExportIDs_;
00297   int * ExportLIDs_;
00298   int * ExportPIDs_;
00299 
00300   int NumSend_;
00301   int NumRecv_;
00302 
00303   Epetra_Distributor * Distor_;
00304   
00305 
00306 };
00307 
00308 #endif /* EPETRA_IMPORT_H */

Generated on Wed May 12 21:41:05 2010 for Epetra Package Browser (Single Doxygen Collection) by  doxygen 1.4.7