/[escript]/trunk/dudley/src/Assemble.h
ViewVC logotype

Contents of /trunk/dudley/src/Assemble.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3379 - (show annotations)
Wed Nov 24 04:48:49 2010 UTC (8 years ago) by gross
File MIME type: text/plain
File size: 5144 byte(s)
some clarification on lumping
1
2 /*******************************************************
3 *
4 * Copyright (c) 2003-2010 by University of Queensland
5 * Earth Systems Science Computational Center (ESSCC)
6 * http://www.uq.edu.au/esscc
7 *
8 * Primary Business: Queensland, Australia
9 * Licensed under the Open Software License version 3.0
10 * http://www.opensource.org/licenses/osl-3.0.php
11 *
12 *******************************************************/
13
14 /**************************************************************/
15
16 /* assemblage routines: header file */
17
18 /**************************************************************/
19
20 #ifndef INC_DUDLEY_ASSEMBLE
21 #define INC_DUDLEY_ASSEMBLE
22
23 /**************************************************************/
24
25 #include "Dudley.h"
26 #include "ElementFile.h"
27 #include "NodeFile.h"
28 #include "escript/DataC.h"
29 #include "paso/SystemMatrix.h"
30
31 struct Dudley_Assemble_Parameters {
32 dim_t numQuad; /* number of quadrature nodes */
33 dim_t numDim; /* spatial dimension */
34 dim_t NN; /* leading dimension of element node table */
35 dim_t numElements; /* number of elements */
36
37 dim_t numEqu;
38 index_t *row_DOF;
39 dim_t row_DOF_UpperBound;
40 Dudley_ElementFile_Jacobeans *row_jac;
41 dim_t numShapes;
42
43 dim_t numComp;
44 index_t *col_DOF;
45 dim_t col_DOF_UpperBound;
46
47 const double *shapeFns;
48 };
49
50 typedef struct Dudley_Assemble_Parameters Dudley_Assemble_Parameters;
51
52 #define Dudley_Assemble_reducedIntegrationOrder(__in__) ( (getFunctionSpaceType(__in__) == DUDLEY_REDUCED_ELEMENTS) || (getFunctionSpaceType(__in__) == DUDLEY_REDUCED_FACE_ELEMENTS) )
53
54 void Dudley_Assemble_PDE(Dudley_NodeFile *, Dudley_ElementFile *, Paso_SystemMatrix *, escriptDataC *,
55 escriptDataC *, escriptDataC *, escriptDataC *, escriptDataC *, escriptDataC *,
56 escriptDataC *);
57
58
59 void Dudley_Assemble_getAssembleParameters(Dudley_NodeFile *, Dudley_ElementFile *, Paso_SystemMatrix *, escriptDataC *,
60 bool_t, Dudley_Assemble_Parameters *);
61 void Dudley_Assemble_PDE_System2_3D(Dudley_Assemble_Parameters, Dudley_ElementFile *, Paso_SystemMatrix *, escriptDataC *,
62 escriptDataC *, escriptDataC *, escriptDataC *, escriptDataC *, escriptDataC *,
63 escriptDataC *);
64 void Dudley_Assemble_PDE_System2_2D(Dudley_Assemble_Parameters, Dudley_ElementFile *, Paso_SystemMatrix *, escriptDataC *,
65 escriptDataC *, escriptDataC *, escriptDataC *, escriptDataC *, escriptDataC *,
66 escriptDataC *);
67 void Dudley_Assemble_PDE_System2_1D(Dudley_Assemble_Parameters, Dudley_ElementFile *, Paso_SystemMatrix *, escriptDataC *,
68 escriptDataC *, escriptDataC *, escriptDataC *, escriptDataC *, escriptDataC *,
69 escriptDataC *);
70
71 void Dudley_Assemble_PDE_Single2_3D(Dudley_Assemble_Parameters, Dudley_ElementFile *, Paso_SystemMatrix *, escriptDataC *,
72 escriptDataC *, escriptDataC *, escriptDataC *, escriptDataC *, escriptDataC *,
73 escriptDataC *);
74 void Dudley_Assemble_PDE_Single2_2D(Dudley_Assemble_Parameters, Dudley_ElementFile *, Paso_SystemMatrix *, escriptDataC *,
75 escriptDataC *, escriptDataC *, escriptDataC *, escriptDataC *, escriptDataC *,
76 escriptDataC *);
77 void Dudley_Assemble_PDE_Single2_1D(Dudley_Assemble_Parameters, Dudley_ElementFile *, Paso_SystemMatrix *, escriptDataC *,
78 escriptDataC *, escriptDataC *, escriptDataC *, escriptDataC *, escriptDataC *,
79 escriptDataC *);
80
81 void Dudley_Assemble_NodeCoordinates(Dudley_NodeFile *, escriptDataC *);
82 void Dudley_Assemble_setNormal(Dudley_NodeFile *, Dudley_ElementFile *, escriptDataC *);
83 void Dudley_Assemble_interpolate(Dudley_NodeFile *, Dudley_ElementFile *, escriptDataC *, escriptDataC *);
84 void Dudley_Assemble_gradient(Dudley_NodeFile *, Dudley_ElementFile *, escriptDataC *, escriptDataC *);
85 void Dudley_Assemble_integrate(Dudley_NodeFile *, Dudley_ElementFile *, escriptDataC *, double *);
86 void Dudley_Assemble_getSize(Dudley_NodeFile *, Dudley_ElementFile *, escriptDataC *);
87 void Dudley_Assemble_CopyNodalData(Dudley_NodeFile * nodes, escriptDataC * out, escriptDataC * in);
88 void Dudley_Assemble_CopyElementData(Dudley_ElementFile * elements, escriptDataC * out, escriptDataC * in);
89 void Dudley_Assemble_AverageElementData(Dudley_ElementFile * elements, escriptDataC * out, escriptDataC * in);
90 void Dudley_Assemble_addToSystemMatrix(Paso_SystemMatrix *, dim_t, index_t *, dim_t, dim_t, index_t *, dim_t, double *);
91
92 void Dudley_Assemble_jacobeans_2D(double *, dim_t, dim_t, dim_t, index_t *, double *, double *abs_D, double *quadweight,
93 index_t *);
94 void Dudley_Assemble_jacobeans_2D_M1D_E1D(double *, dim_t, dim_t, dim_t, index_t *, double *, double *abs_D,
95 double *quadweight, index_t *);
96 void Dudley_Assemble_jacobeans_3D(double *, dim_t, dim_t, dim_t, index_t *, double *, double *abs_D, double *quadweight,
97 index_t *);
98 void Dudley_Assemble_jacobeans_3D_M2D_E2D(double *, dim_t, dim_t, dim_t, index_t *, double *, double *abs_D,
99 double *quadweight, index_t *);
100
101 void Dudley_Assemble_LumpedSystem(Dudley_NodeFile * nodes, Dudley_ElementFile * elements, escriptDataC * lumpedMat,
102 escriptDataC * D, const bool_t useHRZ);
103 #endif /* #ifndef INC_DUDLEY_ASSEMBLE */

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26