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 |
int numQuad; |
25 |
int numDim; |
26 |
int numElementDim; |
27 |
|
28 |
int NN; |
29 |
int NS; |
30 |
Finley_RefElement* referenceElement; |
31 |
|
32 |
int numEqu; |
33 |
maybelong* label_row; |
34 |
Finley_RefElement* referenceElement_row; |
35 |
maybelong* row_node; |
36 |
int NN_row; |
37 |
int NS_row; |
38 |
|
39 |
int numComp; |
40 |
maybelong * label_col; |
41 |
Finley_RefElement* referenceElement_col; |
42 |
maybelong* col_node; |
43 |
int NN_col; |
44 |
int NS_col; |
45 |
|
46 |
maybelong 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) (int, int,int, double*,int, int); |
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(int,int,int,int,int,double*,double*, double*,int, double*, double*,int, double*,int,double*,int,double*,int); |
68 |
void Finley_Assemble_PDEMatrix_Single2(int,int,int,double*,double*, double*,int, double*, double*,int, double*,int,double*,int,double*,int); |
69 |
void Finley_Assemble_RHSMatrix_System(int,int,int,int,double*,double*,double*,int, double*,double*,int,double*,int); |
70 |
void Finley_Assemble_RHSMatrix_Single(int,int,int,double*,double*,double*,int, double*,double*,int,double*,int); |
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.1 2004/10/26 06:53:56 jgs |
84 |
* Initial revision |
85 |
* |
86 |
* Revision 1.1 2004/07/02 04:21:13 gross |
87 |
* Finley C code has been included |
88 |
* |
89 |
* |
90 |
*/ |