/[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 100 by jgs, Wed Dec 15 03:48:48 2004 UTC trunk/finley/src/Mesh.h revision 471 by jgs, Fri Jan 27 01:33:02 2006 UTC
# Line 1  Line 1 
1  /* $Id$ */  /*
2     ******************************************************************************
3     *                                                                            *
4     *       COPYRIGHT  ACcESS 2003,2004,2005 -  All Rights Reserved              *
5     *                                                                            *
6     * This software is the property of ACcESS. No part of this code              *
7     * may be copied in any form or by any means without the expressed written    *
8     * consent of ACcESS.  Copying, use or modification of this software          *
9     * by any unauthorised person is illegal unless that person has a software    *
10     * license agreement with ACcESS.                                             *
11     *                                                                            *
12     ******************************************************************************
13    */
14    /* Version: $Id$ */
15    
16    
17  #ifndef INC_FINLEY_MESH  #ifndef INC_FINLEY_MESH
18  #define INC_FINLEY_MESH  #define INC_FINLEY_MESH
# Line 44  Line 58 
58    
59  /**************************************************************/  /**************************************************************/
60    
61    #include "Finley.h"
62  #include "NodeFile.h"  #include "NodeFile.h"
63  #include "ElementFile.h"  #include "ElementFile.h"
64    #include "SystemMatrixPattern.h"
65  #include "escript/Data/DataC.h"  #include "escript/Data/DataC.h"
66    
67  /**************************************************************/  /**************************************************************/
# Line 54  Line 70 
70    
71  struct Finley_Mesh {  struct Finley_Mesh {
72    char* Name;                           /* the name of the mesh */    char* Name;                           /* the name of the mesh */
73    int order;                            /* integration order */    index_t order;                          /* integration order */
74    int reference_counter;                /* counts the number of references to the mesh; */    dim_t reference_counter;              /* counts the number of references to the mesh; */
75    Finley_NodeFile* Nodes;               /* the table of the nodes */    Finley_NodeFile* Nodes;               /* the table of the nodes */
76    Finley_ElementFile* Elements;         /* the table of the elements */    Finley_ElementFile* Elements;         /* the table of the elements */
77    Finley_ElementFile* FaceElements;     /* the table of the face elements */    Finley_ElementFile* FaceElements;     /* the table of the face elements */
78    Finley_ElementFile* ContactElements;  /* the table of the contact elements */    Finley_ElementFile* ContactElements;  /* the table of the contact elements */
79    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) */
80    
81      /* pointer to the sparse matrix pattern */
82    
83      Paso_SystemMatrixPattern *FullFullPattern;
84      Paso_SystemMatrixPattern *FullReducedPattern;
85      Paso_SystemMatrixPattern *ReducedFullPattern;
86      Paso_SystemMatrixPattern *ReducedReducedPattern;
87  };  };
88    
89  typedef struct Finley_Mesh Finley_Mesh;  typedef struct Finley_Mesh Finley_Mesh;
# Line 68  typedef struct Finley_Mesh Finley_Mesh; Line 91  typedef struct Finley_Mesh Finley_Mesh;
91  /* these structures are used for matching surfaces elements: */  /* these structures are used for matching surfaces elements: */
92    
93  struct Finley_Mesh_findMatchingFaces_center{  struct Finley_Mesh_findMatchingFaces_center{
94     int refId;     index_t refId;
95     double x[MAX_numDim];     double x[MAX_numDim];
96  };  };
97  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 101  typedef struct Finley_Mesh_findMatchingF
101  /*  interfaces: */  /*  interfaces: */
102    
103  Finley_Mesh* Finley_Mesh_alloc(char*,int,int);  Finley_Mesh* Finley_Mesh_alloc(char*,int,int);
104    Finley_Mesh* Finley_Mesh_reference(Finley_Mesh*);
105  void Finley_Mesh_dealloc(Finley_Mesh*);  void Finley_Mesh_dealloc(Finley_Mesh*);
106  int Finley_Mesh_getDim(Finley_Mesh*);  dim_t Finley_Mesh_getDim(Finley_Mesh*);
107  int Finley_Mesh_getNumNodes(Finley_Mesh*);  dim_t Finley_Mesh_getNumNodes(Finley_Mesh*);
108  int Finley_Mesh_getNumDegreesOfFreedom(Finley_Mesh*);  dim_t Finley_Mesh_getNumDegreesOfFreedom(Finley_Mesh*);
109  int Finley_Mesh_getReducedNumDegreesOfFreedom(Finley_Mesh*);  dim_t Finley_Mesh_getReducedNumDegreesOfFreedom(Finley_Mesh*);
110    Paso_SystemMatrixPattern* Finley_getPattern(Finley_Mesh *mesh,bool_t reduce_row_order, bool_t reduce_col_order);
111    Paso_SystemMatrixPattern* Finley_makePattern(Finley_Mesh *mesh,bool_t reduce_row_order, bool_t reduce_col_order);
112  void Finley_Mesh_write(Finley_Mesh*,char*);  void Finley_Mesh_write(Finley_Mesh*,char*);
113  Finley_Mesh* Finley_Mesh_read(char*,int);  Finley_Mesh* Finley_Mesh_read(char*,index_t);
114    
115  void Finley_Mesh_prepare(Finley_Mesh* in);  void Finley_Mesh_prepare(Finley_Mesh* in);
116  void Finley_Mesh_prepareNodes(Finley_Mesh* in);  void Finley_Mesh_prepareNodes(Finley_Mesh* in);
117  void Finley_Mesh_improveColoring(Finley_Mesh* in);  void Finley_Mesh_improveColoring(Finley_Mesh* in);
118  void Finley_Mesh_optimizeElementDistribution(Finley_Mesh* in);  void Finley_Mesh_optimizeElementDistribution(Finley_Mesh* in);
119  void  Finley_Mesh_resolveNodeIds(Finley_Mesh*);  void  Finley_Mesh_resolveNodeIds(Finley_Mesh*);
120  Finley_Mesh* Finley_Mesh_merge(int, Finley_Mesh**);  Finley_Mesh* Finley_Mesh_merge(dim_t, Finley_Mesh**);
121    
122  void Finley_Mesh_relableElementNodes(int*,int,Finley_Mesh*);  void Finley_Mesh_relableElementNodes(int*,int,Finley_Mesh*);
123  void Finley_Mesh_markNodes(int*,int,Finley_Mesh*,int);  void Finley_Mesh_markNodes(int*,int,Finley_Mesh*,int);
# Line 102  void Finley_Mesh_joinFaces(Finley_Mesh* Line 128  void Finley_Mesh_joinFaces(Finley_Mesh*
128  int Finley_Mesh_findMatchingFaces_compar(const void*,const void*);  int Finley_Mesh_findMatchingFaces_compar(const void*,const void*);
129  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*);
130  void Finley_Mesh_print(Finley_Mesh *in);  void Finley_Mesh_print(Finley_Mesh *in);
131  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);
132    void Finley_Mesh_saveVTK(const char * filename_p, Finley_Mesh *mesh_p, const dim_t num_data,char* *names_p,escriptDataC* *data_pp);
133    
134  #endif /* #ifndef INC_FINLEY_MESH */  #endif /* #ifndef INC_FINLEY_MESH */
135    
 /*  
  * $Log$  
  * Revision 1.3  2004/12/15 03:48:45  jgs  
  * *** empty log message ***  
  *  
  * Revision 1.1.1.1  2004/10/26 06:53:57  jgs  
  * initial import of project esys2  
  *  
  * Revision 1.5  2004/07/27 08:26:45  gross  
  * Finley: saveDX added: now it is possible to write data on boundary and contact elements  
  *  
  * Revision 1.4  2004/07/26 04:27:15  gross  
  * it allmost compiles now  
  *  
  * Revision 1.3  2004/07/02 04:21:13  gross  
  * Finley C code has been included  
  *  
  * Revision 1.2  2004/07/02 00:03:29  gross  
  * interface for saveDX added  
  *  
  * Revision 1.1.1.1  2004/06/24 04:00:40  johng  
  * Initial version of eys using boost-python.  
  *  
  *  
  */  

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

  ViewVC Help
Powered by ViewVC 1.1.26