Escript  Revision_4320
dudley/src/Assemble.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2013 by University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Open Software License version 3.0
9 * http://www.opensource.org/licenses/osl-3.0.php
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development since 2012 by School of Earth Sciences
13 *
14 *****************************************************************************/
15 
16 /************************************************************************************/
17 
18 /* assemblage routines: header file */
19 
20 /************************************************************************************/
21 
22 #ifndef INC_DUDLEY_ASSEMBLE
23 #define INC_DUDLEY_ASSEMBLE
24 
25 /************************************************************************************/
26 
27 #include "Dudley.h"
28 #include "ElementFile.h"
29 #include "NodeFile.h"
30 #include "escript/DataC.h"
31 #include "paso/SystemMatrix.h"
32 
34  dim_t numQuad; /* number of quadrature nodes */
35  dim_t numDim; /* spatial dimension */
36  dim_t NN; /* leading dimension of element node table */
37  dim_t numElements; /* number of elements */
38 
44 
48 
49  const double *shapeFns;
50 };
51 
53 
54 #define Dudley_Assemble_reducedIntegrationOrder(__in__) ( (getFunctionSpaceType(__in__) == DUDLEY_REDUCED_ELEMENTS) || (getFunctionSpaceType(__in__) == DUDLEY_REDUCED_FACE_ELEMENTS) )
55 
58  escriptDataC *);
59 
60 
65  escriptDataC *);
68  escriptDataC *);
71  escriptDataC *);
72 
75  escriptDataC *);
78  escriptDataC *);
81  escriptDataC *);
83 
93 void Dudley_Assemble_addToSystemMatrix(Paso_SystemMatrix * in, const dim_t NN_Equa, const index_t * Nodes_Equa, const dim_t num_Equa,
94  const dim_t NN_Sol, const index_t * Nodes_Sol, const dim_t num_Sol, const double *array);
95 
96 void Dudley_Assemble_jacobeans_2D(double *, dim_t, dim_t, dim_t, index_t *, double *, double *abs_D, double *quadweight,
97  index_t *);
98 void Dudley_Assemble_jacobeans_2D_M1D_E1D(double *, dim_t, dim_t, dim_t, index_t *, double *, double *abs_D,
99  double *quadweight, index_t *);
100 void Dudley_Assemble_jacobeans_3D(double *, dim_t, dim_t, dim_t, index_t *, double *, double *abs_D, double *quadweight,
101  index_t *);
102 void Dudley_Assemble_jacobeans_3D_M2D_E2D(double *, dim_t, dim_t, dim_t, index_t *, double *, double *abs_D,
103  double *quadweight, index_t *);
104 
106  escriptDataC * D, const bool_t useHRZ);
107 #endif /* #ifndef INC_DUDLEY_ASSEMBLE */