/[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

trunk/esys2/finley/src/finleyC/ElementFile.h revision 123 by jgs, Fri Jul 8 04:08:13 2005 UTC trunk/finley/src/ElementFile.h revision 777 by gross, Wed Jul 12 08:54:45 2006 UTC
# Line 1  Line 1 
1  /* $Id$ */  /*
2     ************************************************************
3     *          Copyright 2006 by ACcESS MNRF                   *
4     *                                                          *
5     *              http://www.access.edu.au                    *
6     *       Primary Business: Queensland, Australia            *
7     *  Licensed under the Open Software License version 3.0    *
8     *     http://www.opensource.org/licenses/osl-3.0.php       *
9     *                                                          *
10     ************************************************************
11    */
12    
13    /* Version: $Id$ */
14    
15  #ifndef INC_FINLEY_ELEMENTFILE  #ifndef INC_FINLEY_ELEMENTFILE
16  #define INC_FINLEY_ELEMENTFILE  #define INC_FINLEY_ELEMENTFILE
17    
18  #include "Common.h"  #include "Finley.h"
19    #include "NodeFile.h"
20  #include "ReferenceElements.h"  #include "ReferenceElements.h"
21    #include "escript/DataC.h"
22    
23    #ifdef PASO_MPI
24    #include "paso/Paso_MPI.h"
25    #include "Distribution.h"
26    #endif
27    
28    struct Finley_ElementFile_Jacobeans {
29      Finley_Status_t status;               /* status of mesh when jacobeans where updated last time */
30      Finley_RefElement* ReferenceElement;  /* reference elemnt used to calculate jacobeans (this is a borrowd reference) */
31      double* volume;                       /* local volume */
32      double* DSDX;                         /* derivatives of shape functions in global coordinates at quadrature points*/
33    };
34    
35    typedef struct Finley_ElementFile_Jacobeans Finley_ElementFile_Jacobeans;
36    
37  struct Finley_ElementFile {  struct Finley_ElementFile {
38    #ifdef PASO_MPI
39      Paso_MPIInfo *MPIInfo;
40      Finley_ElementDistribution *elementDistribution;
41    #endif
42    
43    Finley_RefElement* ReferenceElement;           /* the reference element, see    Finley_RefElement* ReferenceElement;           /* the reference element, see
44                              Reference element.c */                              Reference element.c */
# Line 45  struct Finley_ElementFile { Line 77  struct Finley_ElementFile {
77                              mesh. */                              mesh. */
78    index_t minColor;                           /* minimum color */    index_t minColor;                           /* minimum color */
79    index_t maxColor;                           /* maximum color */    index_t maxColor;                           /* maximum color */
80    index_t *Color;                              /* assigns each element a color. elements with the same color     */    index_t *Color;                             /* assigns each element a color. elements with the same color     */
81                           /* are don't share a node so they can be processed simultaneously */                                /* are don't share a node so they can be processed simultaneously */
82                                                   /* at anytime Color must provide a valid value. In any case one can set  */                                                /* at anytime Color must provide a valid value. In any case one can set  */
83                                                   /* Color[e]=e  for all e */                                                /* Color[e]=e  for all e */
84    index_t order;                     /* order of the element */    index_t order;                   /* order of the element */
85    
86      Finley_ElementFile_Jacobeans* jacobeans;           /* element jacobeans */
87      Finley_ElementFile_Jacobeans* jacobeans_reducedS;  /* element jacobeans for reduced order of shape function*/
88      Finley_ElementFile_Jacobeans* jacobeans_reducedQ;  /* element jacobeans for reduced integration order*/
89      Finley_ElementFile_Jacobeans* jacobeans_reducedS_reducedQ;  /* element jacobeans for reduced integration order and  reduced order of shape function*/
90    
91  };  };
92    
93  typedef struct Finley_ElementFile Finley_ElementFile;  typedef struct Finley_ElementFile Finley_ElementFile;
94    
95    #ifndef PASO_MPI
96  Finley_ElementFile* Finley_ElementFile_alloc(ElementTypeId,dim_t);  Finley_ElementFile* Finley_ElementFile_alloc(ElementTypeId,dim_t);
97    #else
98    Finley_ElementFile* Finley_ElementFile_alloc( ElementTypeId, dim_t, Paso_MPIInfo* );
99    void Finley_ElementFile_markInternalElementNodes(index_t* mask,index_t offset,Finley_ElementFile* in,bool_t useLinear);
100    void Finley_ElementFile_markBoundaryElementNodes(index_t* mask,index_t offset,Finley_ElementFile* in,bool_t useLinear);
101    void Finley_ElementFile_markInternalElementDOF(index_t* mask,index_t offset,index_t *degreeOfFreedom, Finley_ElementFile* in,bool_t useLinear);
102    void Finley_ElementFile_markBoundaryElementDOF(index_t* mask,index_t offset,index_t *degreeOfFreedom,Finley_ElementFile* in,bool_t useLinear);
103    #endif
104    
105  void Finley_ElementFile_dealloc(Finley_ElementFile*);  void Finley_ElementFile_dealloc(Finley_ElementFile*);
106  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);
107  void Finley_ElementFile_optimizeDistribution(Finley_ElementFile** in);  void Finley_ElementFile_optimizeDistribution(Finley_ElementFile** in);
# Line 67  void Finley_ElementFile_copyTable(dim_t, Line 114  void Finley_ElementFile_copyTable(dim_t,
114  void Finley_ElementFile_allocTable(Finley_ElementFile*,dim_t);  void Finley_ElementFile_allocTable(Finley_ElementFile*,dim_t);
115  void Finley_ElementFile_deallocTable(Finley_ElementFile*);  void Finley_ElementFile_deallocTable(Finley_ElementFile*);
116  void Finley_ElementFile_prepare(Finley_ElementFile** in,dim_t numNodes,dim_t* degreeOfFreedom);  void Finley_ElementFile_prepare(Finley_ElementFile** in,dim_t numNodes,dim_t* degreeOfFreedom);
117    void Finley_ElementFile_setTags(Finley_ElementFile*,const int,escriptDataC*);
118    Finley_ElementFile_Jacobeans* Finley_ElementFile_Jacobeans_alloc(Finley_RefElement*);
119    void Finley_ElementFile_Jacobeans_dealloc(Finley_ElementFile_Jacobeans*);
120    Finley_ElementFile_Jacobeans* Finley_ElementFile_borrowJacobeans(Finley_ElementFile*, Finley_NodeFile*, bool_t, bool_t);
121    
122    
123  #endif /* #ifndef INC_FINLEY_ELEMENTFILE */  #endif /* #ifndef INC_FINLEY_ELEMENTFILE */
124    
125  /*  /*
126   * $Log$   * $Log$
127     * Revision 1.3  2005/09/15 03:44:21  jgs
128     * Merge of development branch dev-02 back to main trunk on 2005-09-15
129     *
130     * Revision 1.2.2.1  2005/09/07 06:26:18  gross
131     * the solver from finley are put into the standalone package paso now
132     *
133   * Revision 1.2  2005/07/08 04:07:49  jgs   * Revision 1.2  2005/07/08 04:07:49  jgs
134   * Merge of development branch back to main trunk on 2005-07-08   * Merge of development branch back to main trunk on 2005-07-08
135   *   *

Legend:
Removed from v.123  
changed lines
  Added in v.777

  ViewVC Help
Powered by ViewVC 1.1.26