/[escript]/branches/RW_WIN32/finley/src/finleyC/NodeFile.h
ViewVC logotype

Annotation of /branches/RW_WIN32/finley/src/finleyC/NodeFile.h

Parent Directory Parent Directory | Revision Log Revision Log


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

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26