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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 471 - (show annotations)
Fri Jan 27 01:33:02 2006 UTC (13 years, 8 months ago) by jgs
File MIME type: text/plain
File size: 4860 byte(s)
reorganise finley src tree to remove inc dir and src/finley directory

1 /*
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
15 /* Version: $Id$ */
16
17 #ifndef INC_FINLEY_NODEFILE
18 #define INC_FINLEY_NODEFILE
19
20 #define MAX_numDim 3
21
22 #include "Finley.h"
23 #include "escript/Data/DataC.h"
24
25 struct Finley_NodeFile {
26 dim_t numNodes; /* number of nodes */
27 dim_t numDim; /* spatial dimension */
28 index_t *Id; /* Id[i] is the id number of node i. this number is not really
29 used but useful when the nodes are
30 relabled. see also Finley_resolveNodeIds. */
31 /* in the entire code the term 'node id' refers to i but nor to Id[i] */
32 /* if not explicitly stated otherwise. */
33 index_t *Tag; /* Tag[i] is the tag of node i. */
34 double *Coordinates; /* Coordinates[INDEX2(k,i,numDim)] is the k-th coordinate of the */
35 /* node i. */
36 index_t* degreeOfFreedom; /* degreeOfFreedom[i] is the degree of freedom assigned to node i */
37 /* this index is used to consider periodic boundary conditions by assigning */
38 /* the same degreeOfFreedom to the same node */
39 /* the following data are set by Finley_NodeFile_? */
40 dim_t numDegreesOfFreedom; /* number of degrees of freedom in the mesh (<=numNodes)*/
41 /* notice that numDegreesOfFreedom=max(degreeOfFreedom[:]) */
42 index_t* reducedDegreeOfFreedom; /* reducedDegreeOfFreedom[i] is the degree of freedom in the reduced version of the mesh */
43 /* assigned to node i. reducedDegreeOfFreedom[i]<0 indicates that the node is not appearing */
44 /* as a degree of freedom in the reduced version of the mesh. */
45 dim_t reducedNumDegreesOfFreedom; /* number of degrees of freedom in the reduced version of the mesh */
46 /* notice that reducedNumDegreesOfFreedom=max(reducedDegreeOfFreedom[:]) */
47 /* this information is used by interfaces to postprocessing tools that can deal with linear elements only: */
48 dim_t reducedNumNodes; /* returnes the number of nodes in the mesh when looking at the corners */
49 /* of elements only */
50 index_t *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 */
51 };
52
53 typedef struct Finley_NodeFile Finley_NodeFile;
54
55 Finley_NodeFile * Finley_NodeFile_alloc(dim_t);
56 void Finley_NodeFile_dealloc(Finley_NodeFile*);
57 void Finley_NodeFile_setIdRange(index_t*,index_t*,Finley_NodeFile*);
58 void Finley_NodeFile_scatter(index_t*,Finley_NodeFile*,Finley_NodeFile*);
59 void Finley_NodeFile_gather(index_t*,Finley_NodeFile*,Finley_NodeFile*);
60 void Finley_NodeFile_setCoordinates(Finley_NodeFile*,escriptDataC*);
61 void Finley_NodeFile_copyTable(dim_t,Finley_NodeFile*,dim_t,dim_t,Finley_NodeFile*);
62 void Finley_NodeFile_allocTable(Finley_NodeFile*,dim_t);
63 void Finley_NodeFile_deallocTable(Finley_NodeFile*);
64
65 #endif
66
67 /*
68 * $Log$
69 * Revision 1.3 2005/09/15 03:44:23 jgs
70 * Merge of development branch dev-02 back to main trunk on 2005-09-15
71 *
72 * Revision 1.2.2.1 2005/09/07 06:26:20 gross
73 * the solver from finley are put into the standalone package paso now
74 *
75 * Revision 1.2 2005/07/08 04:07:55 jgs
76 * Merge of development branch back to main trunk on 2005-07-08
77 *
78 * Revision 1.1.1.1.2.1 2005/06/29 02:34:54 gross
79 * some changes towards 64 integers in finley
80 *
81 * Revision 1.1.1.1 2004/10/26 06:53:57 jgs
82 * initial import of project esys2
83 *
84 * Revision 1.2 2004/07/02 04:21:13 gross
85 * Finley C code has been included
86 *
87 * Revision 1.1.1.1 2004/06/24 04:00:40 johng
88 * Initial version of eys using boost-python.
89 *
90 *
91 */

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26