/[escript]/trunk-mpi-branch/finley/src/ElementFile.h
ViewVC logotype

Diff of /trunk-mpi-branch/finley/src/ElementFile.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1222 by ksteube, Tue May 15 03:23:17 2007 UTC revision 1223 by gross, Fri Aug 3 02:40:39 2007 UTC
# Line 22  Line 22 
22    
23  #ifdef PASO_MPI  #ifdef PASO_MPI
24  #include "paso/Paso_MPI.h"  #include "paso/Paso_MPI.h"
 #include "Distribution.h"  
25  #endif  #endif
26    
27  struct Finley_ElementFile_Jacobeans {  struct Finley_ElementFile_Jacobeans {
# Line 36  struct Finley_ElementFile_Jacobeans { Line 35  struct Finley_ElementFile_Jacobeans {
35  typedef struct Finley_ElementFile_Jacobeans Finley_ElementFile_Jacobeans;  typedef struct Finley_ElementFile_Jacobeans Finley_ElementFile_Jacobeans;
36    
37  struct Finley_ElementFile {  struct Finley_ElementFile {
 #ifdef PASO_MPI  
38    Paso_MPIInfo *MPIInfo;    Paso_MPIInfo *MPIInfo;
39    Finley_ElementDistribution *elementDistribution;    Paso_MPI_rank *Owner;
     index_t *Dom;  
 #endif  
40    
41    index_t isPrepared;                          /* UNKNOWN,  UNPREPARED, PREPARED to indicate that the element table has been pertpared for calculation (maybe not optimized) */    index_t isPrepared;                          /* UNKNOWN,  UNPREPARED, PREPARED to indicate that the element table has been pertpared for calculation (maybe not optimized) */
42    Finley_RefElement* ReferenceElement;           /* the reference element, see Reference element.c */    Finley_RefElement* ReferenceElement;           /* the reference element, see Reference element.c */
# Line 64  struct Finley_ElementFile { Line 60  struct Finley_ElementFile {
60    index_t *Tag;                                /* Tag[i] is the tag of    index_t *Tag;                                /* Tag[i] is the tag of
61                              element i. */                              element i. */
62    
63    index_t *Nodes;                              /* Nodes[INDEX(k, i,    dim_t numNodes;                              /* number of nodes per element = ReferenceElement.Type.numNodes */
64                              ReferenceElement.Type.numNodes)    index_t *Nodes;                              /* Nodes[INDEX(k, i, numNodes)]
65                              is the k-the node in the                              is the k-the node in the
66                              i-the element. note that                              i-the element. note that
67                              in the way the nodes are                              in the way the nodes are
# Line 92  struct Finley_ElementFile { Line 88  struct Finley_ElementFile {
88  };  };
89    
90  typedef struct Finley_ElementFile Finley_ElementFile;  typedef struct Finley_ElementFile Finley_ElementFile;
   
 #ifndef PASO_MPI  
 Finley_ElementFile* Finley_ElementFile_alloc(ElementTypeId, index_t, index_t);  
 #else  
91  Finley_ElementFile* Finley_ElementFile_alloc( ElementTypeId, index_t, index_t, Paso_MPIInfo* );  Finley_ElementFile* Finley_ElementFile_alloc( ElementTypeId, index_t, index_t, Paso_MPIInfo* );
92  void Finley_ElementFile_setDomainFlags( Finley_ElementFile *in  );  void Finley_ElementFile_free(Finley_ElementFile*);
93  #endif  void Finley_ElementFile_allocTable(Finley_ElementFile*,dim_t);
94    void Finley_ElementFile_freeTable(Finley_ElementFile*);
95    dim_t Finley_ElementFile_getGlobalNumElements(Finley_ElementFile* in);
96    dim_t Finley_ElementFile_getMyNumElements(Finley_ElementFile* in);
97    index_t Finley_ElementFile_getFirstElement(Finley_ElementFile* in);
98    void Finley_ElementFile_distributeByRankOfDOF(Finley_ElementFile* self, Paso_MPI_rank* mpiRankOfDOF, index_t *Id);
99    
100  void Finley_ElementFile_dealloc(Finley_ElementFile*);  /*=================== */
101  void Finley_ElementFile_improveColoring(Finley_ElementFile* in,dim_t numNodes,dim_t* degreeOfFreedom);  void Finley_ElementFile_improveColoring(Finley_ElementFile* in,dim_t numNodes,dim_t* degreeOfFreedom);
102  void Finley_ElementFile_optimizeDistribution(Finley_ElementFile** in);  void Finley_ElementFile_optimizeDistribution(Finley_ElementFile** in);
103    /*=================== */
104  void Finley_ElementFile_setNodeRange(dim_t*,dim_t*,Finley_ElementFile*);  void Finley_ElementFile_setNodeRange(dim_t*,dim_t*,Finley_ElementFile*);
105  void Finley_ElementFile_relableNodes(dim_t*,dim_t,Finley_ElementFile*);  void Finley_ElementFile_relableNodes(dim_t*,dim_t,Finley_ElementFile*);
106  void Finley_ElementFile_markNodes(dim_t*,dim_t,Finley_ElementFile*,dim_t);  void Finley_ElementFile_markNodes(dim_t*,dim_t,Finley_ElementFile*,dim_t);
107  void Finley_ElementFile_scatter(dim_t*,Finley_ElementFile*,Finley_ElementFile*);  void Finley_ElementFile_scatter(dim_t*,Finley_ElementFile*,Finley_ElementFile*);
108  void Finley_ElementFile_gather(dim_t*,Finley_ElementFile*,Finley_ElementFile*);  void Finley_ElementFile_gather(dim_t*,Finley_ElementFile*,Finley_ElementFile*);
109  void Finley_ElementFile_copyTable(dim_t,Finley_ElementFile*,dim_t,dim_t,Finley_ElementFile*);  void Finley_ElementFile_copyTable(dim_t,Finley_ElementFile*,dim_t,dim_t,Finley_ElementFile*);
110  void Finley_ElementFile_allocTable(Finley_ElementFile*,dim_t);  
 void Finley_ElementFile_deallocTable(Finley_ElementFile*);  
 void Finley_ElementFile_prepare(Finley_ElementFile** in,dim_t numNodes,dim_t* degreeOfFreedom);  
111  void Finley_ElementFile_setTags(Finley_ElementFile*,const int,escriptDataC*);  void Finley_ElementFile_setTags(Finley_ElementFile*,const int,escriptDataC*);
112  Finley_ElementFile_Jacobeans* Finley_ElementFile_Jacobeans_alloc(Finley_RefElement*);  Finley_ElementFile_Jacobeans* Finley_ElementFile_Jacobeans_alloc(Finley_RefElement*);
113  void Finley_ElementFile_Jacobeans_dealloc(Finley_ElementFile_Jacobeans*);  void Finley_ElementFile_Jacobeans_dealloc(Finley_ElementFile_Jacobeans*);
# Line 120  Finley_ElementFile_Jacobeans* Finley_Ele Line 116  Finley_ElementFile_Jacobeans* Finley_Ele
116    
117  #endif /* #ifndef INC_FINLEY_ELEMENTFILE */  #endif /* #ifndef INC_FINLEY_ELEMENTFILE */
118    
 /*  
  * $Log$  
  * Revision 1.3  2005/09/15 03:44:21  jgs  
  * Merge of development branch dev-02 back to main trunk on 2005-09-15  
  *  
  * Revision 1.2.2.1  2005/09/07 06:26:18  gross  
  * the solver from finley are put into the standalone package paso now  
  *  
  * Revision 1.2  2005/07/08 04:07:49  jgs  
  * Merge of development branch back to main trunk on 2005-07-08  
  *  
  * Revision 1.1.1.1.2.1  2005/06/29 02:34:49  gross  
  * some changes towards 64 integers in finley  
  *  
  * Revision 1.1.1.1  2004/10/26 06:53:57  jgs  
  * initial import of project esys2  
  *  
  * Revision 1.1.1.1  2004/06/24 04:00:40  johng  
  * Initial version of eys using boost-python.  
  *  
  *  
 */  

Legend:
Removed from v.1222  
changed lines
  Added in v.1223

  ViewVC Help
Powered by ViewVC 1.1.26