FEI  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
fei_ProcEqns.hpp
1 #ifndef _ProcEqns_hpp_
2 #define _ProcEqns_hpp_
3 
4 /*--------------------------------------------------------------------*/
5 /* Copyright 2005 Sandia Corporation. */
6 /* Under the terms of Contract DE-AC04-94AL85000, there is a */
7 /* non-exclusive license for use of this work by or on behalf */
8 /* of the U.S. Government. Export of this program may require */
9 /* a license from the United States Government. */
10 /*--------------------------------------------------------------------*/
11 
27 class ProcEqns {
28  public:
30  ProcEqns();
32  virtual ~ProcEqns();
33 
37  ProcEqns* deepCopy();
38 
40  size_t getNumProcs() {return(procs_.size());}
41 
43  std::vector<int>& procsPtr() {return(procs_);}
44 
48  std::vector<int>& eqnsPerProcPtr() {return(eqnsPerProc_);}
49 
53  std::vector<std::vector<int>*>& procEqnNumbersPtr() {return(procEqnNumbers_);}
54 
58  std::vector<std::vector<int>*>& procEqnLengthsPtr() {return(procEqnLengths_);}
59 
63  void addEqn(int eqnNumber, int proc);
64 
69  void addEqn(int eqnNumber, int eqnLength, int proc);
70 
81  void setProcEqnLengths(int* eqnNumbers, int* eqnLengths, int len);
82 
83  private:
84  void deleteMemory();
85  void internalAddEqn(int eqnNumber, int eqnLength, int proc);
86 
87  std::vector<int> procs_;
88  std::vector<int> eqnsPerProc_;
89  std::vector<std::vector<int>* > procEqnNumbers_;
90  std::vector<std::vector<int>* > procEqnLengths_;
91 };
92 
93 #endif
94 
virtual ~ProcEqns()
std::vector< int > & eqnsPerProcPtr()
void setProcEqnLengths(int *eqnNumbers, int *eqnLengths, int len)
void addEqn(int eqnNumber, int proc)
std::vector< int > & procsPtr()
std::vector< std::vector< int > * > & procEqnNumbersPtr()
std::vector< std::vector< int > * > & procEqnLengthsPtr()
size_t getNumProcs()
ProcEqns * deepCopy()