fei_ProcEqns.hpp

00001 #ifndef _ProcEqns_hpp_
00002 #define _ProcEqns_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 
00027 class ProcEqns {
00028  public:
00030    ProcEqns();
00032    virtual ~ProcEqns();
00033 
00037    ProcEqns* deepCopy();
00038 
00040    size_t getNumProcs() {return(procs_.size());}
00041 
00043    std::vector<int>& procsPtr() {return(procs_);}
00044 
00048    std::vector<int>& eqnsPerProcPtr() {return(eqnsPerProc_);}
00049 
00053    std::vector<std::vector<int>*>& procEqnNumbersPtr() {return(procEqnNumbers_);}
00054 
00058    std::vector<std::vector<int>*>& procEqnLengthsPtr() {return(procEqnLengths_);}
00059 
00063    void addEqn(int eqnNumber, int proc);
00064 
00069    void addEqn(int eqnNumber, int eqnLength, int proc);
00070 
00081    void setProcEqnLengths(int* eqnNumbers, int* eqnLengths, int len);
00082 
00083  private:
00084    void deleteMemory();
00085    void internalAddEqn(int eqnNumber, int eqnLength, int proc);
00086 
00087    std::vector<int> procs_;
00088    std::vector<int> eqnsPerProc_;
00089    std::vector<std::vector<int>* > procEqnNumbers_;
00090    std::vector<std::vector<int>* > procEqnLengths_;
00091 };
00092 
00093 #endif
00094 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends
Generated on Wed Apr 13 10:08:24 2011 for FEI by  doxygen 1.6.3