ESScript  Revision_4488
finley/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 
19  Assemblage routines: header file
20 
21 *****************************************************************************/
22 
23 #ifndef __FINLEY_ASSEMBLE_H__
24 #define __FINLEY_ASSEMBLE_H__
25 
26 #include "ReferenceElements.h"
27 #include "Finley.h"
28 #include "ElementFile.h"
29 #include "NodeFile.h"
30 #include "paso/SystemMatrix.h"
31 
32 namespace finley {
33 
35  AssembleParameters(const NodeFile* nodes, const ElementFile* ef,
37  bool reducedOrder);
38 
50  int numSides;
52  int numSub;
54  int numDim;
56  int NN;
59 
60  int numEqu;
61  int* row_DOF;
64  int* row_node;
67  int numComp;
68  int* col_DOF;
71  int* col_node;
74 };
75 
76 
80 void Assemble_PDE(NodeFile* nodes, ElementFile* elements, Paso_SystemMatrix* S,
81  escript::Data& F, const escript::Data& A, const escript::Data& B,
82  const escript::Data& C, const escript::Data& D, const escript::Data& X,
83  const escript::Data& Y);
84 
86  escript::Data& y_dirac);
87 
90  escript::Data& Y);
91 
94  escript::Data& Y);
95 
98  escript::Data& Y);
99 
101  escript::Data& Y);
102 
105  escript::Data& Y);
106 
109  escript::Data& Y);
110 
113  escript::Data& Y);
114 
116  escript::Data& Y);
117 
118 void Assemble_addToSystemMatrix(Paso_SystemMatrix*, const int NN_Equa,
119  const int* Nodes_Equa, const int num_Equa, const int NN_Sol,
120  const int* Nodes_Sol, const int num_Sol, const double* array);
121 
122 void Assemble_LumpedSystem(NodeFile* nodes, ElementFile* elements,
123  escript::Data& lumpedMat, const escript::Data& D, bool useHRZ);
124 
129 
131 void Assemble_integrate(NodeFile*, ElementFile*, const escript::Data&, double*);
135 
136 void Assemble_jacobians_1D(double*, int, double*, int, int, int, int*, double*,
137  int, double*, double*, double*, int*);
138 void Assemble_jacobians_2D(double*, int, double*, int, int, int, int*, double*,
139  int, double*, double*, double*, int*);
140 void Assemble_jacobians_2D_M1D_E2D(double*, int, double*, int, int, int, int*,
141  double*, int, double*, double*, double*, int*);
142 void Assemble_jacobians_2D_M1D_E2D_C(double*, int, double*, int, int, int,
143  int*, double*, int, double*, double*, double*, int*);
144 void Assemble_jacobians_2D_M1D_E1D(double*, int, double*, int, int, int, int*,
145  double*, int, double*, double*, double*, int*);
146 void Assemble_jacobians_2D_M1D_E1D_C(double*, int, double*, int, int, int,
147  int*, double*, int, double*, double*, double*, int*);
148 void Assemble_jacobians_3D(double*, int, double*, int, int, int, int*, double*,
149  int, double*, double*, double*, int*);
150 void Assemble_jacobians_3D_M2D_E3D(double*, int, double*, int, int, int, int*,
151  double*, int, double*, double*, double*, int*);
152 void Assemble_jacobians_3D_M2D_E3D_C(double*, int, double*, int, int, int,
153  int*, double*, int, double*, double*, double*, int*);
154 void Assemble_jacobians_3D_M2D_E2D(double*, int, double*, int, int, int, int*,
155  double*, int, double*, double*, double*, int*);
156 void Assemble_jacobians_3D_M2D_E2D_C(double*, int, double*, int, int, int,
157  int*, double*, int, double*, double*, double*, int*);
158 
159 } // namespace finley
160 
161 #endif // __FINLEY_ASSEMBLE_H__
162