1 |
/* $Id$ */ |
2 |
|
3 |
#ifndef INC_FINLEY_ASSEMBLE |
4 |
#define INC_FINLEY_ASSEMBLE |
5 |
|
6 |
/**************************************************************/ |
7 |
|
8 |
/* assemblage routines: header file */ |
9 |
|
10 |
/**************************************************************/ |
11 |
|
12 |
/* Copyrights by ACcESS Australia, 2003,2004 */ |
13 |
/* author: gross@access.edu.au */ |
14 |
/* Version: $Id$ */ |
15 |
|
16 |
/**************************************************************/ |
17 |
#include "ReferenceElements.h" |
18 |
#include "System.h" |
19 |
#include "ElementFile.h" |
20 |
#include "NodeFile.h" |
21 |
#include "escript/Data/DataC.h" |
22 |
|
23 |
struct Assemble_Parameters { |
24 |
dim_t numQuad; |
25 |
dim_t numDim; |
26 |
dim_t numElementDim; |
27 |
|
28 |
dim_t NN; |
29 |
dim_t NS; |
30 |
Finley_RefElement* referenceElement; |
31 |
|
32 |
dim_t numEqu; |
33 |
index_t* label_row; |
34 |
Finley_RefElement* referenceElement_row; |
35 |
index_t* row_node; |
36 |
dim_t NN_row; |
37 |
dim_t NS_row; |
38 |
|
39 |
dim_t numComp; |
40 |
index_t * label_col; |
41 |
Finley_RefElement* referenceElement_col; |
42 |
index_t* col_node; |
43 |
dim_t NN_col; |
44 |
dim_t NS_col; |
45 |
|
46 |
index_t id[MAX_numNodes]; /* used to hold a reordering vector, referenced by row_node and col_node */ |
47 |
}; |
48 |
|
49 |
typedef struct Assemble_Parameters Assemble_Parameters; |
50 |
|
51 |
|
52 |
typedef void (Finley_Assemble_handelShapeMissMatch) (dim_t, dim_t,dim_t, double*,dim_t, dim_t); |
53 |
|
54 |
void Finley_Assemble_PDE(Finley_NodeFile*,Finley_ElementFile*,Finley_SystemMatrix*,escriptDataC*, |
55 |
escriptDataC*, escriptDataC*, escriptDataC*, escriptDataC*, escriptDataC*, escriptDataC*) ; |
56 |
void Finley_Assemble_RobinCondition(Finley_NodeFile*,Finley_ElementFile*,Finley_SystemMatrix*,escriptDataC*, |
57 |
escriptDataC*,escriptDataC*,Finley_Assemble_handelShapeMissMatch) ; |
58 |
/* void Finley_Assemble_Points(Finley_Mesh*,Finley_SystemMatrix*,escriptDataC*,escriptDataC*,escriptDataC*) ;*/ |
59 |
void Finley_Assemble_NodeCoordinates(Finley_NodeFile*,escriptDataC*); |
60 |
void Finley_Assemble_setNormal(Finley_NodeFile*, Finley_ElementFile*, escriptDataC*); |
61 |
void Finley_Assemble_interpolate(Finley_NodeFile*,Finley_ElementFile*,escriptDataC*, escriptDataC*); |
62 |
void Finley_Assemble_gradient(Finley_NodeFile*, Finley_ElementFile*,escriptDataC*, escriptDataC*); |
63 |
void Finley_Assemble_integrate(Finley_NodeFile*,Finley_ElementFile*,escriptDataC*,double*) ; |
64 |
void Finley_Assemble_getSize(Finley_NodeFile*,Finley_ElementFile*, escriptDataC*); |
65 |
void Finley_Assemble_CopyNodalData(Finley_NodeFile* nodes,escriptDataC* out,escriptDataC* in); |
66 |
void Finley_Assemble_CopyElementData(Finley_ElementFile* elements,escriptDataC* out,escriptDataC* in); |
67 |
void Finley_Assemble_PDEMatrix_System2(dim_t,dim_t,dim_t,dim_t,dim_t,double*,double*, double*,dim_t, double*, double*,dim_t, double*,dim_t,double*,dim_t,double*,dim_t); |
68 |
void Finley_Assemble_PDEMatrix_Single2(dim_t,dim_t,dim_t,double*,double*, double*,dim_t, double*, double*,dim_t, double*,dim_t,double*,dim_t,double*,dim_t); |
69 |
void Finley_Assemble_RHSMatrix_System(dim_t,dim_t,dim_t,dim_t,double*,double*,double*,dim_t, double*,double*,dim_t,double*,dim_t); |
70 |
void Finley_Assemble_RHSMatrix_Single(dim_t,dim_t,dim_t,double*,double*,double*,dim_t, double*,double*,dim_t,double*,dim_t); |
71 |
|
72 |
|
73 |
void Assemble_getAssembleParameters(Finley_NodeFile*,Finley_ElementFile*,Finley_SystemMatrix*,escriptDataC*,Assemble_Parameters*); |
74 |
Finley_Assemble_handelShapeMissMatch Finley_Assemble_handelShapeMissMatch_Step_out; |
75 |
Finley_Assemble_handelShapeMissMatch Finley_Assemble_handelShapeMissMatch_Step_in; |
76 |
Finley_Assemble_handelShapeMissMatch Finley_Assemble_handelShapeMissMatch_Mean_out; |
77 |
Finley_Assemble_handelShapeMissMatch Finley_Assemble_handelShapeMissMatch_Mean_in; |
78 |
|
79 |
#endif /* #ifndef INC_FINLEY_ASSEMBLE */ |
80 |
|
81 |
/* |
82 |
* $Log$ |
83 |
* Revision 1.2 2005/07/08 04:07:45 jgs |
84 |
* Merge of development branch back to main trunk on 2005-07-08 |
85 |
* |
86 |
* Revision 1.1.1.1.2.1 2005/06/29 02:34:46 gross |
87 |
* some changes towards 64 integers in finley |
88 |
* |
89 |
* Revision 1.1.1.1 2004/10/26 06:53:56 jgs |
90 |
* initial import of project esys2 |
91 |
* |
92 |
* Revision 1.1 2004/07/02 04:21:13 gross |
93 |
* Finley C code has been included |
94 |
* |
95 |
* |
96 |
*/ |