/[escript]/branches/arrayview_from_1695_trunk/finley/src/ElementFile.h
ViewVC logotype

Diff of /branches/arrayview_from_1695_trunk/finley/src/ElementFile.h

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

revision 1062 by gross, Mon Mar 26 06:17:53 2007 UTC revision 1312 by ksteube, Mon Sep 24 06:18:44 2007 UTC
# Line 1  Line 1 
 /*  
  ************************************************************  
  *          Copyright 2006 by ACcESS MNRF                   *  
  *                                                          *  
  *              http://www.access.edu.au                    *  
  *       Primary Business: Queensland, Australia            *  
  *  Licensed under the Open Software License version 3.0    *  
  *     http://www.opensource.org/licenses/osl-3.0.php       *  
  *                                                          *  
  ************************************************************  
 */  
1    
2  /* Version: $Id$ */  /* $Id$ */
3    
4    /*******************************************************
5     *
6     *           Copyright 2003-2007 by ACceSS MNRF
7     *       Copyright 2007 by University of Queensland
8     *
9     *                http://esscc.uq.edu.au
10     *        Primary Business: Queensland, Australia
11     *  Licensed under the Open Software License version 3.0
12     *     http://www.opensource.org/licenses/osl-3.0.php
13     *
14     *******************************************************/
15    
16  #ifndef INC_FINLEY_ELEMENTFILE  #ifndef INC_FINLEY_ELEMENTFILE
17  #define INC_FINLEY_ELEMENTFILE  #define INC_FINLEY_ELEMENTFILE
# Line 22  Line 23 
23    
24  #ifdef PASO_MPI  #ifdef PASO_MPI
25  #include "paso/Paso_MPI.h"  #include "paso/Paso_MPI.h"
 #include "Distribution.h"  
26  #endif  #endif
27    
28  struct Finley_ElementFile_Jacobeans {  struct Finley_ElementFile_Jacobeans {
# Line 36  struct Finley_ElementFile_Jacobeans { Line 36  struct Finley_ElementFile_Jacobeans {
36  typedef struct Finley_ElementFile_Jacobeans Finley_ElementFile_Jacobeans;  typedef struct Finley_ElementFile_Jacobeans Finley_ElementFile_Jacobeans;
37    
38  struct Finley_ElementFile {  struct Finley_ElementFile {
 #ifdef PASO_MPI  
39    Paso_MPIInfo *MPIInfo;    Paso_MPIInfo *MPIInfo;
40    Finley_ElementDistribution *elementDistribution;    Paso_MPI_rank *Owner;
     index_t *Dom;  
 #endif  
41    
   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 */
43    Finley_RefElement* ReferenceElementReducedOrder;    /* the reference element with reduced integration order, see Reference element.c */    Finley_RefElement* ReferenceElementReducedOrder;    /* the reference element with reduced integration order, see Reference element.c */
44    Finley_RefElement* LinearReferenceElement;     /* the reference element for the linear mesh. it is vital that it is using the same quadrature scheme like ReferenceElement*/    Finley_RefElement* LinearReferenceElement;     /* the reference element for the linear mesh. it is vital that it is using the same quadrature scheme like ReferenceElement*/
# 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    void Finley_ElementFile_setElementDistribution(Finley_ElementFile* in, dim_t* distribution);
96    dim_t Finley_ElementFile_getGlobalNumElements(Finley_ElementFile* in);
97    dim_t Finley_ElementFile_getMyNumElements(Finley_ElementFile* in);
98    index_t Finley_ElementFile_getFirstElement(Finley_ElementFile* in);
99    void Finley_ElementFile_distributeByRankOfDOF(Finley_ElementFile* self, Paso_MPI_rank* mpiRankOfDOF, index_t *Id);
100    
101  void Finley_ElementFile_dealloc(Finley_ElementFile*);  void Finley_ElementFile_createColoring(Finley_ElementFile* in,dim_t numNodes,dim_t* degreeOfFreedom);
102  void Finley_ElementFile_improveColoring(Finley_ElementFile* in,dim_t numNodes,dim_t* degreeOfFreedom);  void Finley_ElementFile_optimizeOrdering(Finley_ElementFile** in);
 void Finley_ElementFile_optimizeDistribution(Finley_ElementFile** in);  
103  void Finley_ElementFile_setNodeRange(dim_t*,dim_t*,Finley_ElementFile*);  void Finley_ElementFile_setNodeRange(dim_t*,dim_t*,Finley_ElementFile*);
104  void Finley_ElementFile_relableNodes(dim_t*,dim_t,Finley_ElementFile*);  void Finley_ElementFile_relableNodes(dim_t*,dim_t,Finley_ElementFile*);
105  void Finley_ElementFile_markNodes(dim_t*,dim_t,Finley_ElementFile*,dim_t);  void Finley_ElementFile_markNodes(dim_t*,dim_t,Finley_ElementFile*,dim_t);
106  void Finley_ElementFile_scatter(dim_t*,Finley_ElementFile*,Finley_ElementFile*);  void Finley_ElementFile_scatter(dim_t*,Finley_ElementFile*,Finley_ElementFile*);
107  void Finley_ElementFile_gather(dim_t*,Finley_ElementFile*,Finley_ElementFile*);  void Finley_ElementFile_gather(dim_t*,Finley_ElementFile*,Finley_ElementFile*);
108  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*);
109  void Finley_ElementFile_allocTable(Finley_ElementFile*,dim_t);  void Finley_ElementFile_markDOFsConnectedToRange(index_t* mask,index_t offset,index_t marker,index_t firstDOF,index_t lastDOF,index_t *dofIndex,Finley_ElementFile*in ,bool_t useLinear);
110  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.1062  
changed lines
  Added in v.1312

  ViewVC Help
Powered by ViewVC 1.1.26