/[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 100 by jgs, Wed Dec 15 03:48:48 2004 UTC revision 123 by jgs, Fri Jul 8 04:08:13 2005 UTC
# Line 46  Line 46 
46    
47  #include "NodeFile.h"  #include "NodeFile.h"
48  #include "ElementFile.h"  #include "ElementFile.h"
49    #include "SystemPattern.h"
50  #include "escript/Data/DataC.h"  #include "escript/Data/DataC.h"
51    
52  /**************************************************************/  /**************************************************************/
# Line 54  Line 55 
55    
56  struct Finley_Mesh {  struct Finley_Mesh {
57    char* Name;                           /* the name of the mesh */    char* Name;                           /* the name of the mesh */
58    int order;                            /* integration order */    index_t order;                          /* integration order */
59    int reference_counter;                /* counts the number of references to the mesh; */    dim_t reference_counter;              /* counts the number of references to the mesh; */
60    Finley_NodeFile* Nodes;               /* the table of the nodes */    Finley_NodeFile* Nodes;               /* the table of the nodes */
61    Finley_ElementFile* Elements;         /* the table of the elements */    Finley_ElementFile* Elements;         /* the table of the elements */
62    Finley_ElementFile* FaceElements;     /* the table of the face elements */    Finley_ElementFile* FaceElements;     /* the table of the face elements */
63    Finley_ElementFile* ContactElements;  /* the table of the contact elements */    Finley_ElementFile* ContactElements;  /* the table of the contact elements */
64    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) */
65    
66      /* pointer to the sparse matrix pattern */
67    
68      Finley_SystemMatrixPattern *FullFullPattern;
69      Finley_SystemMatrixPattern *FullReducedPattern;
70      Finley_SystemMatrixPattern *ReducedFullPattern;
71      Finley_SystemMatrixPattern *ReducedReducedPattern;
72  };  };
73    
74  typedef struct Finley_Mesh Finley_Mesh;  typedef struct Finley_Mesh Finley_Mesh;
# Line 68  typedef struct Finley_Mesh Finley_Mesh; Line 76  typedef struct Finley_Mesh Finley_Mesh;
76  /* these structures are used for matching surfaces elements: */  /* these structures are used for matching surfaces elements: */
77    
78  struct Finley_Mesh_findMatchingFaces_center{  struct Finley_Mesh_findMatchingFaces_center{
79     int refId;     index_t refId;
80     double x[MAX_numDim];     double x[MAX_numDim];
81  };  };
82  typedef struct Finley_Mesh_findMatchingFaces_center Finley_Mesh_findMatchingFaces_center;  typedef struct Finley_Mesh_findMatchingFaces_center Finley_Mesh_findMatchingFaces_center;
# Line 78  typedef struct Finley_Mesh_findMatchingF Line 86  typedef struct Finley_Mesh_findMatchingF
86  /*  interfaces: */  /*  interfaces: */
87    
88  Finley_Mesh* Finley_Mesh_alloc(char*,int,int);  Finley_Mesh* Finley_Mesh_alloc(char*,int,int);
89    Finley_Mesh* Finley_Mesh_reference(Finley_Mesh*);
90  void Finley_Mesh_dealloc(Finley_Mesh*);  void Finley_Mesh_dealloc(Finley_Mesh*);
91  int Finley_Mesh_getDim(Finley_Mesh*);  dim_t Finley_Mesh_getDim(Finley_Mesh*);
92  int Finley_Mesh_getNumNodes(Finley_Mesh*);  dim_t Finley_Mesh_getNumNodes(Finley_Mesh*);
93  int Finley_Mesh_getNumDegreesOfFreedom(Finley_Mesh*);  dim_t Finley_Mesh_getNumDegreesOfFreedom(Finley_Mesh*);
94  int Finley_Mesh_getReducedNumDegreesOfFreedom(Finley_Mesh*);  dim_t Finley_Mesh_getReducedNumDegreesOfFreedom(Finley_Mesh*);
95    Finley_SystemMatrixPattern* Finley_getPattern(Finley_Mesh *mesh,bool_t reduce_row_order, bool_t reduce_col_order);
96    Finley_SystemMatrixPattern* Finley_makePattern(Finley_Mesh *mesh,bool_t reduce_row_order, bool_t reduce_col_order);
97  void Finley_Mesh_write(Finley_Mesh*,char*);  void Finley_Mesh_write(Finley_Mesh*,char*);
98  Finley_Mesh* Finley_Mesh_read(char*,int);  Finley_Mesh* Finley_Mesh_read(char*,index_t);
99    
100  void Finley_Mesh_prepare(Finley_Mesh* in);  void Finley_Mesh_prepare(Finley_Mesh* in);
101  void Finley_Mesh_prepareNodes(Finley_Mesh* in);  void Finley_Mesh_prepareNodes(Finley_Mesh* in);
102  void Finley_Mesh_improveColoring(Finley_Mesh* in);  void Finley_Mesh_improveColoring(Finley_Mesh* in);
103  void Finley_Mesh_optimizeElementDistribution(Finley_Mesh* in);  void Finley_Mesh_optimizeElementDistribution(Finley_Mesh* in);
104  void  Finley_Mesh_resolveNodeIds(Finley_Mesh*);  void  Finley_Mesh_resolveNodeIds(Finley_Mesh*);
105  Finley_Mesh* Finley_Mesh_merge(int, Finley_Mesh**);  Finley_Mesh* Finley_Mesh_merge(dim_t, Finley_Mesh**);
106    
107  void Finley_Mesh_relableElementNodes(int*,int,Finley_Mesh*);  void Finley_Mesh_relableElementNodes(int*,int,Finley_Mesh*);
108  void Finley_Mesh_markNodes(int*,int,Finley_Mesh*,int);  void Finley_Mesh_markNodes(int*,int,Finley_Mesh*,int);
# Line 103  int Finley_Mesh_findMatchingFaces_compar Line 114  int Finley_Mesh_findMatchingFaces_compar
114  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*);
115  void Finley_Mesh_print(Finley_Mesh *in);  void Finley_Mesh_print(Finley_Mesh *in);
116  void Finley_Mesh_saveDX(const char *, Finley_Mesh *, escriptDataC*);  void Finley_Mesh_saveDX(const char *, Finley_Mesh *, escriptDataC*);
117    void Finley_Mesh_saveVTK(const char *, Finley_Mesh *, escriptDataC*);
118    
119  #endif /* #ifndef INC_FINLEY_MESH */  #endif /* #ifndef INC_FINLEY_MESH */
120    
121  /*  /*
122   * $Log$   * $Log$
123   * Revision 1.3  2004/12/15 03:48:45  jgs   * Revision 1.6  2005/07/08 04:07:51  jgs
124   * *** empty log message ***   * Merge of development branch back to main trunk on 2005-07-08
125     *
126     * Revision 1.1.1.1.2.3  2005/06/29 02:34:51  gross
127     * some changes towards 64 integers in finley
128     *
129     * Revision 1.1.1.1.2.2  2005/02/09 06:53:59  cochrane
130     * Added Finley_Mesh_saveVTK.
131     *
132     * Revision 1.1.1.1.2.1  2004/11/12 06:58:18  gross
133     * a lot of changes to get the linearPDE class running: most important change is that there is no matrix format exposed to the user anymore. the format is chosen by the Domain according to the solver and symmetry
134   *   *
135   * Revision 1.1.1.1  2004/10/26 06:53:57  jgs   * Revision 1.1.1.1  2004/10/26 06:53:57  jgs
136   * initial import of project esys2   * initial import of project esys2

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

  ViewVC Help
Powered by ViewVC 1.1.26