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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 123 - (show annotations)
Fri Jul 8 04:08:13 2005 UTC (14 years, 4 months ago) by jgs
Original Path: trunk/esys2/finley/src/finleyC/ElementFile.h
File MIME type: text/plain
File size: 3472 byte(s)
Merge of development branch back to main trunk on 2005-07-08

1 /* $Id$ */
2
3 #ifndef INC_FINLEY_ELEMENTFILE
4 #define INC_FINLEY_ELEMENTFILE
5
6 #include "Common.h"
7 #include "ReferenceElements.h"
8
9 struct Finley_ElementFile {
10
11 Finley_RefElement* ReferenceElement; /* the reference element, see
12 Reference element.c */
13
14 Finley_RefElement* LinearReferenceElement; /* the reference element for
15 the linear mesh. it is
16 vital that both are using
17 the same quadrature
18 scheme */
19
20 dim_t numElements; /* number of elements. */
21
22 index_t *Id; /* Id[i] is the id nmber of
23 node i. this number is not
24 used but useful when
25 elements are resorted. in
26 the entire code the term
27 'element id' refers to i
28 but nor to Id[i] if not
29 explicitly stated
30 otherwise. */
31
32 index_t *Tag; /* Tag[i] is the tag of
33 element i. */
34
35 index_t *Nodes; /* Nodes[INDEX(k, i,
36 ReferenceElement.Type.numNodes)
37 is the k-the node in the
38 i-the element. note that
39 in the way the nodes are
40 ordered Nodes[INDEX(k, i,
41 LinearReferenceElement.Type.numNodes)
42 is k-the node of element i
43 when refering to the
44 linear version of the
45 mesh. */
46 index_t minColor; /* minimum color */
47 index_t maxColor; /* maximum color */
48 index_t *Color; /* assigns each element a color. elements with the same color */
49 /* are don't share a node so they can be processed simultaneously */
50 /* at anytime Color must provide a valid value. In any case one can set */
51 /* Color[e]=e for all e */
52 index_t order; /* order of the element */
53 };
54
55 typedef struct Finley_ElementFile Finley_ElementFile;
56
57 Finley_ElementFile* Finley_ElementFile_alloc(ElementTypeId,dim_t);
58 void Finley_ElementFile_dealloc(Finley_ElementFile*);
59 void Finley_ElementFile_improveColoring(Finley_ElementFile* in,dim_t numNodes,dim_t* degreeOfFreedom);
60 void Finley_ElementFile_optimizeDistribution(Finley_ElementFile** in);
61 void Finley_ElementFile_setNodeRange(dim_t*,dim_t*,Finley_ElementFile*);
62 void Finley_ElementFile_relableNodes(dim_t*,dim_t,Finley_ElementFile*);
63 void Finley_ElementFile_markNodes(dim_t*,dim_t,Finley_ElementFile*,dim_t);
64 void Finley_ElementFile_scatter(dim_t*,Finley_ElementFile*,Finley_ElementFile*);
65 void Finley_ElementFile_gather(dim_t*,Finley_ElementFile*,Finley_ElementFile*);
66 void Finley_ElementFile_copyTable(dim_t,Finley_ElementFile*,dim_t,dim_t,Finley_ElementFile*);
67 void Finley_ElementFile_allocTable(Finley_ElementFile*,dim_t);
68 void Finley_ElementFile_deallocTable(Finley_ElementFile*);
69 void Finley_ElementFile_prepare(Finley_ElementFile** in,dim_t numNodes,dim_t* degreeOfFreedom);
70
71 #endif /* #ifndef INC_FINLEY_ELEMENTFILE */
72
73 /*
74 * $Log$
75 * Revision 1.2 2005/07/08 04:07:49 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:49 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.1.1.1 2004/06/24 04:00:40 johng
85 * Initial version of eys using boost-python.
86 *
87 *
88 */

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26