/[escript]/trunk/finley/src/Mesh.h
ViewVC logotype

Diff of /trunk/finley/src/Mesh.h

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

trunk/esys2/finley/src/finleyC/Mesh.h revision 110 by jgs, Mon Feb 14 04:14:42 2005 UTC trunk/finley/src/Mesh.h revision 776 by gross, Wed Jul 12 00:07:31 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    /* Version: $Id$ */
13    
14    
15  #ifndef INC_FINLEY_MESH  #ifndef INC_FINLEY_MESH
16  #define INC_FINLEY_MESH  #define INC_FINLEY_MESH
# Line 44  Line 56 
56    
57  /**************************************************************/  /**************************************************************/
58    
59    #include "Finley.h"
60  #include "NodeFile.h"  #include "NodeFile.h"
61  #include "ElementFile.h"  #include "ElementFile.h"
62  #include "SystemPattern.h"  #include "paso/SystemMatrixPattern.h"
63  #include "escript/Data/DataC.h"  #include "escript/DataC.h"
64    
65    #ifdef PASO_MPI
66    #include "paso/Paso_MPI.h"
67    #endif
68    
69  /**************************************************************/  /**************************************************************/
70    
# Line 55  Line 72 
72    
73  struct Finley_Mesh {  struct Finley_Mesh {
74    char* Name;                           /* the name of the mesh */    char* Name;                           /* the name of the mesh */
75    int order;                            /* integration order */    index_t order;                          /* integration order */
76    int reference_counter;                /* counts the number of references to the mesh; */    dim_t reference_counter;              /* counts the number of references to the mesh; */
77    Finley_NodeFile* Nodes;               /* the table of the nodes */    Finley_NodeFile* Nodes;               /* the table of the nodes */
78    Finley_ElementFile* Elements;         /* the table of the elements */    Finley_ElementFile* Elements;         /* the table of the elements */
79    Finley_ElementFile* FaceElements;     /* the table of the face elements */    Finley_ElementFile* FaceElements;     /* the table of the face elements */
# Line 65  struct Finley_Mesh { Line 82  struct Finley_Mesh {
82    
83    /* pointer to the sparse matrix pattern */    /* pointer to the sparse matrix pattern */
84    
85    Finley_SystemMatrixPattern *FullFullPattern;    Paso_SystemMatrixPattern *FullFullPattern;
86    Finley_SystemMatrixPattern *FullReducedPattern;    Paso_SystemMatrixPattern *FullReducedPattern;
87    Finley_SystemMatrixPattern *ReducedFullPattern;    Paso_SystemMatrixPattern *ReducedFullPattern;
88    Finley_SystemMatrixPattern *ReducedReducedPattern;    Paso_SystemMatrixPattern *ReducedReducedPattern;
89    #ifdef PASO_MPI
90      Paso_MPIInfo *MPIInfo;
91    #endif
92  };  };
93    
94  typedef struct Finley_Mesh Finley_Mesh;  typedef struct Finley_Mesh Finley_Mesh;
# Line 76  typedef struct Finley_Mesh Finley_Mesh; Line 96  typedef struct Finley_Mesh Finley_Mesh;
96  /* these structures are used for matching surfaces elements: */  /* these structures are used for matching surfaces elements: */
97    
98  struct Finley_Mesh_findMatchingFaces_center{  struct Finley_Mesh_findMatchingFaces_center{
99     int refId;     index_t refId;
100     double x[MAX_numDim];     double x[MAX_numDim];
101  };  };
102  typedef struct Finley_Mesh_findMatchingFaces_center Finley_Mesh_findMatchingFaces_center;  typedef struct Finley_Mesh_findMatchingFaces_center Finley_Mesh_findMatchingFaces_center;
# Line 84  typedef struct Finley_Mesh_findMatchingF Line 104  typedef struct Finley_Mesh_findMatchingF
104  /**************************************************************/  /**************************************************************/
105    
106  /*  interfaces: */  /*  interfaces: */
107    #ifndef PASO_MPI
108  Finley_Mesh* Finley_Mesh_alloc(char*,int,int);  Finley_Mesh* Finley_Mesh_alloc(char* name,dim_t numDim, index_t order);
109    #else
110    Finley_Mesh* Finley_Mesh_alloc(char* name,dim_t numDim, index_t order, Paso_MPIInfo *mpi_info);
111    void Finley_Mesh_markOrderedNodesLocation(index_t* mask,index_t offset,Finley_Mesh* in,bool_t useLinear);
112    void Finley_Mesh_markOrderedDegreesOfFreedomLocation(index_t* mask,index_t offset,Finley_Mesh* in,bool_t useLinear);
113    #endif
114    /*Finley_Mesh* Finley_Mesh_alloc(char*,int,int);*/
115  Finley_Mesh* Finley_Mesh_reference(Finley_Mesh*);  Finley_Mesh* Finley_Mesh_reference(Finley_Mesh*);
116  void Finley_Mesh_dealloc(Finley_Mesh*);  void Finley_Mesh_dealloc(Finley_Mesh*);
117  int Finley_Mesh_getDim(Finley_Mesh*);  dim_t Finley_Mesh_getDim(Finley_Mesh*);
118  int Finley_Mesh_getNumNodes(Finley_Mesh*);  dim_t Finley_Mesh_getNumNodes(Finley_Mesh*);
119  int Finley_Mesh_getNumDegreesOfFreedom(Finley_Mesh*);  dim_t Finley_Mesh_getNumDegreesOfFreedom(Finley_Mesh*);
120  int Finley_Mesh_getReducedNumDegreesOfFreedom(Finley_Mesh*);  dim_t Finley_Mesh_getReducedNumDegreesOfFreedom(Finley_Mesh*);
121  Finley_SystemMatrixPattern* Finley_getPattern(Finley_Mesh *mesh,int reduce_row_order, int reduce_col_order);  Paso_SystemMatrixPattern* Finley_getPattern(Finley_Mesh *mesh,bool_t reduce_row_order, bool_t reduce_col_order);
122  Finley_SystemMatrixPattern* Finley_makePattern(Finley_Mesh *mesh,int reduce_row_order, int reduce_col_order);  Paso_SystemMatrixPattern* Finley_makePattern(Finley_Mesh *mesh,bool_t reduce_row_order, bool_t reduce_col_order);
123  void Finley_Mesh_write(Finley_Mesh*,char*);  void Finley_Mesh_write(Finley_Mesh*,char*);
124  Finley_Mesh* Finley_Mesh_read(char*,int);  Finley_Mesh* Finley_Mesh_read(char*,index_t);
125    void Finley_Mesh_setCoordinates(Finley_Mesh*,escriptDataC*);
126    
127  void Finley_Mesh_prepare(Finley_Mesh* in);  void Finley_Mesh_prepare(Finley_Mesh* in);
128  void Finley_Mesh_prepareNodes(Finley_Mesh* in);  void Finley_Mesh_prepareNodes(Finley_Mesh* in);
129  void Finley_Mesh_improveColoring(Finley_Mesh* in);  void Finley_Mesh_improveColoring(Finley_Mesh* in);
130  void Finley_Mesh_optimizeElementDistribution(Finley_Mesh* in);  void Finley_Mesh_optimizeElementDistribution(Finley_Mesh* in);
131  void  Finley_Mesh_resolveNodeIds(Finley_Mesh*);  void  Finley_Mesh_resolveNodeIds(Finley_Mesh*);
132  Finley_Mesh* Finley_Mesh_merge(int, Finley_Mesh**);  Finley_Mesh* Finley_Mesh_merge(dim_t, Finley_Mesh**);
133    
134  void Finley_Mesh_relableElementNodes(int*,int,Finley_Mesh*);  void Finley_Mesh_relableElementNodes(int*,int,Finley_Mesh*);
135  void Finley_Mesh_markNodes(int*,int,Finley_Mesh*,int);  void Finley_Mesh_markNodes(int*,int,Finley_Mesh*,int);
# Line 113  void Finley_Mesh_joinFaces(Finley_Mesh* Line 140  void Finley_Mesh_joinFaces(Finley_Mesh*
140  int Finley_Mesh_findMatchingFaces_compar(const void*,const void*);  int Finley_Mesh_findMatchingFaces_compar(const void*,const void*);
141  void Finley_Mesh_findMatchingFaces(Finley_NodeFile*,Finley_ElementFile *,double,double, int*, int*,int*,int*);  void Finley_Mesh_findMatchingFaces(Finley_NodeFile*,Finley_ElementFile *,double,double, int*, int*,int*,int*);
142  void Finley_Mesh_print(Finley_Mesh *in);  void Finley_Mesh_print(Finley_Mesh *in);
143  void Finley_Mesh_saveDX(const char *, Finley_Mesh *, escriptDataC*);  void Finley_Mesh_saveDX(const char * filename_p, Finley_Mesh *mesh_p, const dim_t num_data,char* *names_p,escriptDataC* *data_pp);
144  void Finley_Mesh_saveVTK(const char *, Finley_Mesh *, escriptDataC*);  void Finley_Mesh_saveVTK(const char * filename_p, Finley_Mesh *mesh_p, const dim_t num_data,char* *names_p,escriptDataC* *data_pp);
145    
146  #endif /* #ifndef INC_FINLEY_MESH */  #endif /* #ifndef INC_FINLEY_MESH */
147    

Legend:
Removed from v.110  
changed lines
  Added in v.776

  ViewVC Help
Powered by ViewVC 1.1.26