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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 471 - (show annotations)
Fri Jan 27 01:33:02 2006 UTC (13 years, 7 months ago) by jgs
File MIME type: text/plain
File size: 4606 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_ELEMENTFILE
18 #define INC_FINLEY_ELEMENTFILE
19
20 #include "Finley.h"
21 #include "ReferenceElements.h"
22
23 struct Finley_ElementFile {
24
25 Finley_RefElement* ReferenceElement; /* the reference element, see
26 Reference element.c */
27
28 Finley_RefElement* LinearReferenceElement; /* the reference element for
29 the linear mesh. it is
30 vital that both are using
31 the same quadrature
32 scheme */
33
34 dim_t numElements; /* number of elements. */
35
36 index_t *Id; /* Id[i] is the id nmber of
37 node i. this number is not
38 used but useful when
39 elements are resorted. in
40 the entire code the term
41 'element id' refers to i
42 but nor to Id[i] if not
43 explicitly stated
44 otherwise. */
45
46 index_t *Tag; /* Tag[i] is the tag of
47 element i. */
48
49 index_t *Nodes; /* Nodes[INDEX(k, i,
50 ReferenceElement.Type.numNodes)
51 is the k-the node in the
52 i-the element. note that
53 in the way the nodes are
54 ordered Nodes[INDEX(k, i,
55 LinearReferenceElement.Type.numNodes)
56 is k-the node of element i
57 when refering to the
58 linear version of the
59 mesh. */
60 index_t minColor; /* minimum color */
61 index_t maxColor; /* maximum color */
62 index_t *Color; /* assigns each element a color. elements with the same color */
63 /* are don't share a node so they can be processed simultaneously */
64 /* at anytime Color must provide a valid value. In any case one can set */
65 /* Color[e]=e for all e */
66 index_t order; /* order of the element */
67 };
68
69 typedef struct Finley_ElementFile Finley_ElementFile;
70
71 Finley_ElementFile* Finley_ElementFile_alloc(ElementTypeId,dim_t);
72 void Finley_ElementFile_dealloc(Finley_ElementFile*);
73 void Finley_ElementFile_improveColoring(Finley_ElementFile* in,dim_t numNodes,dim_t* degreeOfFreedom);
74 void Finley_ElementFile_optimizeDistribution(Finley_ElementFile** in);
75 void Finley_ElementFile_setNodeRange(dim_t*,dim_t*,Finley_ElementFile*);
76 void Finley_ElementFile_relableNodes(dim_t*,dim_t,Finley_ElementFile*);
77 void Finley_ElementFile_markNodes(dim_t*,dim_t,Finley_ElementFile*,dim_t);
78 void Finley_ElementFile_scatter(dim_t*,Finley_ElementFile*,Finley_ElementFile*);
79 void Finley_ElementFile_gather(dim_t*,Finley_ElementFile*,Finley_ElementFile*);
80 void Finley_ElementFile_copyTable(dim_t,Finley_ElementFile*,dim_t,dim_t,Finley_ElementFile*);
81 void Finley_ElementFile_allocTable(Finley_ElementFile*,dim_t);
82 void Finley_ElementFile_deallocTable(Finley_ElementFile*);
83 void Finley_ElementFile_prepare(Finley_ElementFile** in,dim_t numNodes,dim_t* degreeOfFreedom);
84
85 #endif /* #ifndef INC_FINLEY_ELEMENTFILE */
86
87 /*
88 * $Log$
89 * Revision 1.3 2005/09/15 03:44:21 jgs
90 * Merge of development branch dev-02 back to main trunk on 2005-09-15
91 *
92 * Revision 1.2.2.1 2005/09/07 06:26:18 gross
93 * the solver from finley are put into the standalone package paso now
94 *
95 * Revision 1.2 2005/07/08 04:07:49 jgs
96 * Merge of development branch back to main trunk on 2005-07-08
97 *
98 * Revision 1.1.1.1.2.1 2005/06/29 02:34:49 gross
99 * some changes towards 64 integers in finley
100 *
101 * Revision 1.1.1.1 2004/10/26 06:53:57 jgs
102 * initial import of project esys2
103 *
104 * Revision 1.1.1.1 2004/06/24 04:00:40 johng
105 * Initial version of eys using boost-python.
106 *
107 *
108 */

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26