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

revision 903 by gross, Fri Nov 17 01:59:49 2006 UTC revision 1062 by gross, Mon Mar 26 06:17:53 2007 UTC
# Line 59  Line 59 
59  #include "Finley.h"  #include "Finley.h"
60  #include "NodeFile.h"  #include "NodeFile.h"
61  #include "ElementFile.h"  #include "ElementFile.h"
62    #include "TagMap.h"
63  #include "paso/SystemMatrixPattern.h"  #include "paso/SystemMatrixPattern.h"
64  #include "escript/DataC.h"  #include "escript/DataC.h"
65    
# Line 72  Line 73 
73    
74  struct Finley_Mesh {  struct Finley_Mesh {
75    char* Name;                           /* the name of the mesh */    char* Name;                           /* the name of the mesh */
76    index_t order;                          /* integration order */    index_t order;                        /* integration order */
77      index_t reduced_order;                /* reduced integration order */
78    dim_t reference_counter;              /* counts the number of references to the mesh; */    dim_t reference_counter;              /* counts the number of references to the mesh; */
79    Finley_NodeFile* Nodes;               /* the table of the nodes */    Finley_NodeFile* Nodes;               /* the table of the nodes */
80    Finley_ElementFile* Elements;         /* the table of the elements */    Finley_ElementFile* Elements;         /* the table of the elements */
81    Finley_ElementFile* FaceElements;     /* the table of the face elements */    Finley_ElementFile* FaceElements;     /* the table of the face elements */
82    Finley_ElementFile* ContactElements;  /* the table of the contact elements */    Finley_ElementFile* ContactElements;  /* the table of the contact elements */
83    Finley_ElementFile* Points;           /* the table of points (treated as elements of dimension 0) */    Finley_ElementFile* Points;           /* the table of points (treated as elements of dimension 0) */
84      Finley_TagMap* TagMap;                /* the tag map mapping names to tag keys */
85    
86    /* pointer to the sparse matrix pattern */    /* pointer to the sparse matrix pattern */
87    
# Line 105  typedef struct Finley_Mesh_findMatchingF Line 108  typedef struct Finley_Mesh_findMatchingF
108    
109  /*  interfaces: */  /*  interfaces: */
110  #ifndef PASO_MPI  #ifndef PASO_MPI
111  Finley_Mesh* Finley_Mesh_alloc(char* name,dim_t numDim, index_t order);  Finley_Mesh* Finley_Mesh_alloc(char* name,dim_t numDim, index_t order, index_t reduced_order);
112  #else  #else
113  Finley_Mesh* Finley_Mesh_alloc(char* name,dim_t numDim, index_t order, Paso_MPIInfo *mpi_info);  Finley_Mesh* Finley_Mesh_alloc(char* name,dim_t numDim, index_t order, index_t reduced_order, Paso_MPIInfo *mpi_info);
114  void Finley_Mesh_resolveDegreeOfFreedomOrder( Finley_Mesh *in, bool_t doReduced );  void Finley_Mesh_resolveDegreeOfFreedomOrder( Finley_Mesh *in, bool_t doReduced );
115  void print_mesh_statistics( Finley_Mesh *out, bool_t reduced  );  void print_mesh_statistics( Finley_Mesh *out, bool_t reduced  );
 void Finley_Mesh_prepareElementDistribution( Finley_Mesh *in );  
116  #endif  #endif
117    void Finley_Mesh_prepareElementDistribution( Finley_Mesh *in );
118  /*Finley_Mesh* Finley_Mesh_alloc(char*,int,int);*/  /*Finley_Mesh* Finley_Mesh_alloc(char*,int,int);*/
119  Finley_Mesh* Finley_Mesh_reference(Finley_Mesh*);  Finley_Mesh* Finley_Mesh_reference(Finley_Mesh*);
120  void Finley_Mesh_dealloc(Finley_Mesh*);  void Finley_Mesh_dealloc(Finley_Mesh*);
# Line 122  dim_t Finley_Mesh_getReducedNumDegreesOf Line 125  dim_t Finley_Mesh_getReducedNumDegreesOf
125  Paso_SystemMatrixPattern* Finley_getPattern(Finley_Mesh *mesh,bool_t reduce_row_order, bool_t reduce_col_order);  Paso_SystemMatrixPattern* Finley_getPattern(Finley_Mesh *mesh,bool_t reduce_row_order, bool_t reduce_col_order);
126  Paso_SystemMatrixPattern* Finley_makePattern(Finley_Mesh *mesh,bool_t reduce_row_order, bool_t reduce_col_order);  Paso_SystemMatrixPattern* Finley_makePattern(Finley_Mesh *mesh,bool_t reduce_row_order, bool_t reduce_col_order);
127  void Finley_Mesh_write(Finley_Mesh*,char*);  void Finley_Mesh_write(Finley_Mesh*,char*);
128  Finley_Mesh* Finley_Mesh_read(char*,index_t);  Finley_Mesh* Finley_Mesh_read(char*,index_t, index_t, bool_t);
129    Finley_Mesh* Finley_Mesh_readGmsh(char*,index_t, index_t, index_t, bool_t);
130  void Finley_Mesh_setCoordinates(Finley_Mesh*,escriptDataC*);  void Finley_Mesh_setCoordinates(Finley_Mesh*,escriptDataC*);
131    
132  void Finley_Mesh_prepare(Finley_Mesh* in);  void Finley_Mesh_prepare(Finley_Mesh* in);
133    bool_t Finley_Mesh_isPrepared(Finley_Mesh*);
134  void Finley_Mesh_prepareNodes(Finley_Mesh* in);  void Finley_Mesh_prepareNodes(Finley_Mesh* in);
135  void Finley_Mesh_improveColoring(Finley_Mesh* in);  void Finley_Mesh_improveColoring(Finley_Mesh* in);
136  void Finley_Mesh_optimizeElementDistribution(Finley_Mesh* in);  void Finley_Mesh_optimizeElementDistribution(Finley_Mesh* in);
# Line 135  Finley_Mesh* Finley_Mesh_merge(dim_t, Fi Line 140  Finley_Mesh* Finley_Mesh_merge(dim_t, Fi
140  void Finley_Mesh_relableElementNodes(int*,int,Finley_Mesh*);  void Finley_Mesh_relableElementNodes(int*,int,Finley_Mesh*);
141  void Finley_Mesh_markNodes(int*,int,Finley_Mesh*,int);  void Finley_Mesh_markNodes(int*,int,Finley_Mesh*,int);
142    
143  void Finley_Mesh_glueFaces(Finley_Mesh* self,double safety_factor,double tolerance);  void Finley_Mesh_glueFaces(Finley_Mesh* self,double safety_factor,double tolerance, bool_t);
144  void Finley_Mesh_joinFaces(Finley_Mesh* self,double safety_factor,double tolerance);  void Finley_Mesh_joinFaces(Finley_Mesh* self,double safety_factor,double tolerance, bool_t);
145    
146  int Finley_Mesh_findMatchingFaces_compar(const void*,const void*);  int Finley_Mesh_findMatchingFaces_compar(const void*,const void*);
147  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*);
# Line 148  void Finley_Mesh_saveVTK(const char * fi Line 153  void Finley_Mesh_saveVTK(const char * fi
153  void Finley_Mesh_saveVTK_MPIO(const char * filename_p, Finley_Mesh *mesh_p, const dim_t num_data,char*  void Finley_Mesh_saveVTK_MPIO(const char * filename_p, Finley_Mesh *mesh_p, const dim_t num_data,char*
154  *names_p,escriptDataC* *data_pp);  *names_p,escriptDataC* *data_pp);
155  #endif  #endif
156    void Finley_Mesh_addTagMap(Finley_Mesh *mesh_p,const char* name, index_t tag_key);
157    index_t Finley_Mesh_getTag(Finley_Mesh *mesh_p,const char* name);
158    bool_t Finley_Mesh_isValidTagName(Finley_Mesh *mesh_p,const char* name);
159    
160    
161    

Legend:
Removed from v.903  
changed lines
  Added in v.1062

  ViewVC Help
Powered by ViewVC 1.1.26