escript  Revision_
dudley/src/Assemble.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2016 by The University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Apache License, version 2.0
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development 2012-2013 by School of Earth Sciences
13 * Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 *
15 *****************************************************************************/
16 
17 /************************************************************************************/
18 
19 /* assemblage routines: header file */
20 
21 /************************************************************************************/
22 
23 #ifndef INC_DUDLEY_ASSEMBLE
24 #define INC_DUDLEY_ASSEMBLE
25 
26 /************************************************************************************/
27 
28 #include "Dudley.h"
29 #include "ElementFile.h"
30 #include "NodeFile.h"
31 #include "escript/Data.h"
32 #include "paso/SystemMatrix.h"
33 
35  dim_t numQuad; /* number of quadrature nodes */
36  dim_t numDim; /* spatial dimension */
37  dim_t NN; /* leading dimension of element node table */
38  dim_t numElements; /* number of elements */
39 
45 
49 
50  const double *shapeFns;
51 };
52 
54 
55 #define Dudley_Assemble_reducedIntegrationOrder(__in__) ( (getFunctionSpaceType(__in__) == DUDLEY_REDUCED_ELEMENTS) || (getFunctionSpaceType(__in__) == DUDLEY_REDUCED_FACE_ELEMENTS) )
56 
58  const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *,
59  const escript::Data *);
60 
61 
65  const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *,
66  const escript::Data *);
68  const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *,
69  const escript::Data *);
71  escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *,
72  const escript::Data *);
73 
75  const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *,
76  const escript::Data *);
78  const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *,
79  const escript::Data *);
81  const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *,
82  const escript::Data *);
84 
94 void Dudley_Assemble_addToSystemMatrix(paso::SystemMatrix_ptr in, const dim_t NN_Equa, const index_t * Nodes_Equa, const dim_t num_Equa,
95  const dim_t NN_Sol, const index_t * Nodes_Sol, const dim_t num_Sol, const double *array);
96 
97 void Dudley_Assemble_jacobeans_2D(double *, dim_t, dim_t, dim_t, index_t *, double *, double *abs_D, double *quadweight,
98  index_t *);
99 void Dudley_Assemble_jacobeans_2D_M1D_E1D(double *, dim_t, dim_t, dim_t, index_t *, double *, double *abs_D,
100  double *quadweight, index_t *);
101 void Dudley_Assemble_jacobeans_3D(double *, dim_t, dim_t, dim_t, index_t *, double *, double *abs_D, double *quadweight,
102  index_t *);
103 void Dudley_Assemble_jacobeans_3D_M2D_E2D(double *, dim_t, dim_t, dim_t, index_t *, double *, double *abs_D,
104  double *quadweight, index_t *);
105 
107  const escript::Data * D, const bool useHRZ);
108 #endif /* #ifndef INC_DUDLEY_ASSEMBLE */
void Dudley_Assemble_jacobeans_3D_M2D_E2D(double *, dim_t, dim_t, dim_t, index_t *, double *, double *abs_D, double *quadweight, index_t *)
Definition: Assemble_jacobeans.cpp:293
dim_t numEqu
Definition: dudley/src/Assemble.h:40
void Dudley_Assemble_CopyNodalData(Dudley_NodeFile *nodes, escript::Data *out, const escript::Data *in)
Definition: dudley/src/Assemble_CopyNodalData.cpp:32
void Dudley_Assemble_CopyElementData(Dudley_ElementFile *elements, escript::Data *out, const escript::Data *in)
Definition: dudley/src/Assemble_CopyElementData.cpp:34
dim_t NN
Definition: dudley/src/Assemble.h:37
void Dudley_Assemble_NodeCoordinates(Dudley_NodeFile *, escript::Data *)
Definition: dudley/src/Assemble_NodeCoordinates.cpp:34
void Dudley_Assemble_getSize(Dudley_NodeFile *, Dudley_ElementFile *, escript::Data *)
Definition: dudley/src/Assemble_getSize.cpp:36
dim_t col_DOF_UpperBound
Definition: dudley/src/Assemble.h:48
void Dudley_Assemble_interpolate(Dudley_NodeFile *, Dudley_ElementFile *, const escript::Data *, escript::Data *)
Definition: dudley/src/Assemble_interpolate.cpp:36
index_t * row_DOF
Definition: dudley/src/Assemble.h:41
void Dudley_Assemble_PDE(Dudley_NodeFile *, Dudley_ElementFile *, paso::SystemMatrix_ptr, escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *)
Definition: dudley/src/Assemble_PDE.cpp:57
void Dudley_Assemble_setNormal(Dudley_NodeFile *, Dudley_ElementFile *, escript::Data *)
Definition: Assemble_setNormal.cpp:36
void Dudley_Assemble_addToSystemMatrix(paso::SystemMatrix_ptr in, const dim_t NN_Equa, const index_t *Nodes_Equa, const dim_t num_Equa, const dim_t NN_Sol, const index_t *Nodes_Sol, const dim_t num_Sol, const double *array)
Definition: dudley/src/Assemble_addToSystemMatrix.cpp:39
void Dudley_Assemble_LumpedSystem(Dudley_NodeFile *nodes, Dudley_ElementFile *elements, escript::Data *lumpedMat, const escript::Data *D, const bool useHRZ)
Definition: dudley/src/Assemble_LumpedSystem.cpp:40
index_t * col_DOF
Definition: dudley/src/Assemble.h:47
boost::shared_ptr< SystemMatrix > SystemMatrix_ptr
Definition: SystemMatrix.h:38
dim_t numComp
Definition: dudley/src/Assemble.h:46
dim_t numElements
Definition: dudley/src/Assemble.h:38
dim_t numQuad
Definition: dudley/src/Assemble.h:35
void Dudley_Assemble_PDE_Single2_1D(Dudley_Assemble_Parameters, Dudley_ElementFile *, paso::SystemMatrix_ptr, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *)
Definition: SystemMatrix.h:46
Data represents a collection of datapoints.
Definition: Data.h:68
void Dudley_Assemble_PDE_System2_1D(Dudley_Assemble_Parameters, Dudley_ElementFile *, paso::SystemMatrix, const escript::Data *, escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *)
void Dudley_Assemble_AverageElementData(Dudley_ElementFile *elements, escript::Data *out, const escript::Data *in)
Definition: dudley/src/Assemble_AverageElementData.cpp:35
void Dudley_Assemble_PDE_System2_2D(Dudley_Assemble_Parameters, Dudley_ElementFile *, paso::SystemMatrix_ptr, escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *)
Definition: Assemble_PDE_System2_2D.cpp:49
dim_t row_DOF_UpperBound
Definition: dudley/src/Assemble.h:42
Definition: dudley/src/Assemble.h:34
Definition: dudley/src/ElementFile.h:29
Dudley_ElementFile_Jacobeans * row_jac
Definition: dudley/src/Assemble.h:43
void Dudley_Assemble_PDE_Single2_3D(Dudley_Assemble_Parameters, Dudley_ElementFile *, paso::SystemMatrix_ptr, escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *)
Definition: Assemble_PDE_Single2_3D.cpp:49
int index_t
Definition: types.h:24
dim_t numShapes
Definition: dudley/src/Assemble.h:44
Definition: dudley/src/NodeFile.h:28
index_t dim_t
Definition: types.h:27
void Dudley_Assemble_PDE_System2_3D(Dudley_Assemble_Parameters, Dudley_ElementFile *, paso::SystemMatrix_ptr, escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *)
Definition: Assemble_PDE_System2_3D.cpp:49
void Dudley_Assemble_PDE_Single2_2D(Dudley_Assemble_Parameters, Dudley_ElementFile *, paso::SystemMatrix_ptr, escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *, const escript::Data *)
Definition: Assemble_PDE_Single2_2D.cpp:51
void Dudley_Assemble_jacobeans_3D(double *, dim_t, dim_t, dim_t, index_t *, double *, double *abs_D, double *quadweight, index_t *)
Definition: Assemble_jacobeans.cpp:208
const double * shapeFns
Definition: dudley/src/Assemble.h:50
void Dudley_Assemble_PDE_Points(Dudley_Assemble_Parameters, Dudley_ElementFile *, paso::SystemMatrix_ptr, escript::Data *, const escript::Data *, const escript::Data *)
Definition: dudley/src/Assemble_PDE_Points.cpp:49
void Dudley_Assemble_gradient(Dudley_NodeFile *, Dudley_ElementFile *, escript::Data *, const escript::Data *)
Definition: dudley/src/Assemble_gradient.cpp:36
void Dudley_Assemble_integrate(Dudley_NodeFile *, Dudley_ElementFile *, const escript::Data *, double *)
Definition: dudley/src/Assemble_integrate.cpp:34
void Dudley_Assemble_jacobeans_2D(double *, dim_t, dim_t, dim_t, index_t *, double *, double *abs_D, double *quadweight, index_t *)
Definition: Assemble_jacobeans.cpp:57
void Dudley_Assemble_getAssembleParameters(Dudley_NodeFile *, Dudley_ElementFile *, paso::SystemMatrix_ptr, const escript::Data *, bool, Dudley_Assemble_Parameters *)
Definition: dudley/src/Assemble_getAssembleParameters.cpp:31
dim_t numDim
Definition: dudley/src/Assemble.h:36
Definition: dudley/src/ElementFile.h:40
void Dudley_Assemble_jacobeans_2D_M1D_E1D(double *, dim_t, dim_t, dim_t, index_t *, double *, double *abs_D, double *quadweight, index_t *)
Definition: Assemble_jacobeans.cpp:147