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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 682 - (show annotations)
Mon Mar 27 02:43:09 2006 UTC (13 years, 6 months ago) by robwdcock
File MIME type: text/plain
File size: 5107 byte(s)
+ NEW BUILD SYSTEM

This commit contains the new build system with cross-platform support.
Most things work are before though you can have more control.

ENVIRONMENT settings have changed:
+ You no longer require LD_LIBRARY_PATH or PYTHONPATH to point to the
esysroot for building and testing performed via scons
+ ACcESS altix users: It is recommended you change your modules to load
the latest intel compiler and other libraries required by boost to match
the setup in svn (you can override). The correct modules are as follows

module load intel_cc.9.0.026
export
MODULEPATH=${MODULEPATH}:/data/raid2/toolspp4/modulefiles/gcc-3.3.6
module load boost/1.33.0/python-2.4.1
module load python/2.4.1
module load numarray/1.3.3


1 /*
2 ************************************************************
3 * Copyright 2006 by ACcESS MNRF *
4 * *
5 * http://www.access.edu.au *
6 * Primary Business: Queensland, Australia *
7 * Licensed under the Open Software License version 3.0 *
8 * http://www.opensource.org/licenses/osl-3.0.php *
9 * *
10 ************************************************************
11 */
12
13 /* Version: $Id$ */
14
15 #ifndef INC_FINLEY_ELEMENTFILE
16 #define INC_FINLEY_ELEMENTFILE
17
18 #include "Finley.h"
19 #include "ReferenceElements.h"
20 #include "escript/DataC.h"
21
22 struct Finley_ElementFile {
23
24 Finley_RefElement* ReferenceElement; /* the reference element, see
25 Reference element.c */
26
27 Finley_RefElement* LinearReferenceElement; /* the reference element for
28 the linear mesh. it is
29 vital that both are using
30 the same quadrature
31 scheme */
32
33 dim_t numElements; /* number of elements. */
34
35 index_t *Id; /* Id[i] is the id nmber of
36 node i. this number is not
37 used but useful when
38 elements are resorted. in
39 the entire code the term
40 'element id' refers to i
41 but nor to Id[i] if not
42 explicitly stated
43 otherwise. */
44
45 index_t *Tag; /* Tag[i] is the tag of
46 element i. */
47
48 index_t *Nodes; /* Nodes[INDEX(k, i,
49 ReferenceElement.Type.numNodes)
50 is the k-the node in the
51 i-the element. note that
52 in the way the nodes are
53 ordered Nodes[INDEX(k, i,
54 LinearReferenceElement.Type.numNodes)
55 is k-the node of element i
56 when refering to the
57 linear version of the
58 mesh. */
59 index_t minColor; /* minimum color */
60 index_t maxColor; /* maximum color */
61 index_t *Color; /* assigns each element a color. elements with the same color */
62 /* are don't share a node so they can be processed simultaneously */
63 /* at anytime Color must provide a valid value. In any case one can set */
64 /* Color[e]=e for all e */
65 index_t order; /* order of the element */
66
67 bool_t volume_is_valid; /* true if volume and DvDV are valid */
68 double* volume; /* local volume */
69 double* DvDV; /* inverse jacobean of element parametrization at quadrature points*/
70 bool_t DSDV_is_valid; /* true is DSDV is valid */
71 double* DSDV; /* derivatives of shape functions in global coordinates at quadrature points*/
72 bool_t DSLinearDV_is_valid; /* true if DSLinearDV is valid */
73 double* DSLinearDV; /* derivatives of linear shape functions in gloabl coordinates at quadrature points*/
74 bool_t X_is_valid; /* true if X is valid */
75 double* X; /* global coordniates of quadrature points */
76 };
77
78 typedef struct Finley_ElementFile Finley_ElementFile;
79
80 Finley_ElementFile* Finley_ElementFile_alloc(ElementTypeId,dim_t);
81 void Finley_ElementFile_dealloc(Finley_ElementFile*);
82 void Finley_ElementFile_setCoordinates(Finley_ElementFile*,escriptDataC*);
83 void Finley_ElementFile_improveColoring(Finley_ElementFile* in,dim_t numNodes,dim_t* degreeOfFreedom);
84 void Finley_ElementFile_optimizeDistribution(Finley_ElementFile** in);
85 void Finley_ElementFile_setNodeRange(dim_t*,dim_t*,Finley_ElementFile*);
86 void Finley_ElementFile_relableNodes(dim_t*,dim_t,Finley_ElementFile*);
87 void Finley_ElementFile_markNodes(dim_t*,dim_t,Finley_ElementFile*,dim_t);
88 void Finley_ElementFile_scatter(dim_t*,Finley_ElementFile*,Finley_ElementFile*);
89 void Finley_ElementFile_gather(dim_t*,Finley_ElementFile*,Finley_ElementFile*);
90 void Finley_ElementFile_copyTable(dim_t,Finley_ElementFile*,dim_t,dim_t,Finley_ElementFile*);
91 void Finley_ElementFile_allocTable(Finley_ElementFile*,dim_t);
92 void Finley_ElementFile_deallocTable(Finley_ElementFile*);
93 void Finley_ElementFile_prepare(Finley_ElementFile** in,dim_t numNodes,dim_t* degreeOfFreedom);
94
95 #endif /* #ifndef INC_FINLEY_ELEMENTFILE */
96
97 /*
98 * $Log$
99 * Revision 1.3 2005/09/15 03:44:21 jgs
100 * Merge of development branch dev-02 back to main trunk on 2005-09-15
101 *
102 * Revision 1.2.2.1 2005/09/07 06:26:18 gross
103 * the solver from finley are put into the standalone package paso now
104 *
105 * Revision 1.2 2005/07/08 04:07:49 jgs
106 * Merge of development branch back to main trunk on 2005-07-08
107 *
108 * Revision 1.1.1.1.2.1 2005/06/29 02:34:49 gross
109 * some changes towards 64 integers in finley
110 *
111 * Revision 1.1.1.1 2004/10/26 06:53:57 jgs
112 * initial import of project esys2
113 *
114 * Revision 1.1.1.1 2004/06/24 04:00:40 johng
115 * Initial version of eys using boost-python.
116 *
117 *
118 */

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26