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

Contents of /trunk/finley/src/NodeFile.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 82 - (show annotations)
Tue Oct 26 06:53:54 2004 UTC (15 years ago) by jgs
Original Path: trunk/esys2/finley/src/finleyC/NodeFile.h
File MIME type: text/plain
File size: 3555 byte(s)
Initial revision

1 /* $Id$ */
2
3 #ifndef INC_FINLEY_NODEFILE
4 #define INC_FINLEY_NODEFILE
5
6 #define MAX_numDim 3
7
8 #include "Common.h"
9 #include "escript/Data/DataC.h"
10
11 struct Finley_NodeFile {
12 maybelong numNodes; /* number of nodes */
13 maybelong numDim; /* spatial dimension */
14 maybelong *Id; /* Id[i] is the id number of node i. this number is not really
15 used but useful when the nodes are
16 relabled. see also Finley_resolveNodeIds. */
17 /* in the entire code the term 'node id' refers to i but nor to Id[i] */
18 /* if not explicitly stated otherwise. */
19 maybelong *Tag; /* Tag[i] is the tag of node i. */
20 double *Coordinates; /* Coordinates[INDEX2(k,i,numDim)] is the k-th coordinate of the */
21 /* node i. */
22 maybelong* degreeOfFreedom; /* degreeOfFreedom[i] is the degree of freedom assigned to node i */
23 /* this index is used to consider periodic boundary conditions by assigning */
24 /* the same degreeOfFreedom to the same node */
25 /* the following data are set by Finley_NodeFile_? */
26 maybelong numDegreesOfFreedom; /* number of degrees of freedom in the mesh (<=numNodes)*/
27 /* notice that numDegreesOfFreedom=max(degreeOfFreedom[:]) */
28 maybelong* reducedDegreeOfFreedom; /* reducedDegreeOfFreedom[i] is the degree of freedom in the reduced version of the mesh */
29 /* assigned to node i. reducedDegreeOfFreedom[i]<0 indicates that the node is not appearing */
30 /* as a degree of freedom in the reduced version of the mesh. */
31 maybelong reducedNumDegreesOfFreedom; /* number of degrees of freedom in the reduced version of the mesh */
32 /* notice that reducedNumDegreesOfFreedom=max(reducedDegreeOfFreedom[:]) */
33 /* this information is used by interfaces to postprocessing tools that can deal with linear elements only: */
34 maybelong reducedNumNodes; /* returnes the number of nodes in the mesh when looking at the corners */
35 /* of elements only */
36 maybelong *toReduced; /* toReduced[i] is the node id in the reduced mesh. if toReduced[i]<0 it means that the node does not appear in the reduced mesh */
37 };
38
39 typedef struct Finley_NodeFile Finley_NodeFile;
40
41 Finley_NodeFile * Finley_NodeFile_alloc(int);
42 void Finley_NodeFile_dealloc(Finley_NodeFile*);
43 void Finley_NodeFile_setIdRange(int*,int*,Finley_NodeFile*);
44 void Finley_NodeFile_scatter(int*,Finley_NodeFile*,Finley_NodeFile*);
45 void Finley_NodeFile_gather(int*,Finley_NodeFile*,Finley_NodeFile*);
46 void Finley_NodeFile_setCoordinates(Finley_NodeFile*,escriptDataC*);
47 void Finley_NodeFile_copyTable(int,Finley_NodeFile*,int,int,Finley_NodeFile*);
48 void Finley_NodeFile_allocTable(Finley_NodeFile*,int);
49 void Finley_NodeFile_deallocTable(Finley_NodeFile*);
50
51 #endif
52
53 /*
54 * $Log$
55 * Revision 1.1 2004/10/26 06:53:57 jgs
56 * Initial revision
57 *
58 * Revision 1.2 2004/07/02 04:21:13 gross
59 * Finley C code has been included
60 *
61 * Revision 1.1.1.1 2004/06/24 04:00:40 johng
62 * Initial version of eys using boost-python.
63 *
64 *
65 */

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.26