1 |
jgs |
150 |
/* |
2 |
|
|
****************************************************************************** |
3 |
|
|
* * |
4 |
|
|
* COPYRIGHT ACcESS 2003,2004,2005 - All Rights Reserved * |
5 |
|
|
* * |
6 |
|
|
* This software is the property of ACcESS. No part of this code * |
7 |
|
|
* may be copied in any form or by any means without the expressed written * |
8 |
|
|
* consent of ACcESS. Copying, use or modification of this software * |
9 |
|
|
* by any unauthorised person is illegal unless that person has a software * |
10 |
|
|
* license agreement with ACcESS. * |
11 |
|
|
* * |
12 |
|
|
****************************************************************************** |
13 |
|
|
*/ |
14 |
jgs |
82 |
|
15 |
|
|
/**************************************************************/ |
16 |
|
|
|
17 |
|
|
/* assemblage routines: header file */ |
18 |
|
|
|
19 |
|
|
/**************************************************************/ |
20 |
|
|
|
21 |
jgs |
150 |
/* Copyrights by ACcESS Australia 2003,2004,2005 */ |
22 |
|
|
/* Author: gross@access.edu.au */ |
23 |
|
|
/* Version: $Id$ */ |
24 |
jgs |
82 |
|
25 |
|
|
/**************************************************************/ |
26 |
jgs |
150 |
|
27 |
|
|
#ifndef INC_FINLEY_ASSEMBLE |
28 |
|
|
#define INC_FINLEY_ASSEMBLE |
29 |
|
|
|
30 |
|
|
/**************************************************************/ |
31 |
|
|
|
32 |
jgs |
82 |
#include "ReferenceElements.h" |
33 |
jgs |
150 |
#include "Finley.h" |
34 |
jgs |
82 |
#include "ElementFile.h" |
35 |
|
|
#include "NodeFile.h" |
36 |
|
|
#include "escript/Data/DataC.h" |
37 |
jgs |
467 |
#include "SystemMatrix.h" |
38 |
jgs |
82 |
|
39 |
|
|
struct Assemble_Parameters { |
40 |
jgs |
123 |
dim_t numQuad; |
41 |
|
|
dim_t numDim; |
42 |
|
|
dim_t numElementDim; |
43 |
jgs |
82 |
|
44 |
jgs |
123 |
dim_t NN; |
45 |
|
|
dim_t NS; |
46 |
jgs |
82 |
Finley_RefElement* referenceElement; |
47 |
|
|
|
48 |
jgs |
123 |
dim_t numEqu; |
49 |
|
|
index_t* label_row; |
50 |
jgs |
82 |
Finley_RefElement* referenceElement_row; |
51 |
jgs |
123 |
index_t* row_node; |
52 |
|
|
dim_t NN_row; |
53 |
|
|
dim_t NS_row; |
54 |
jgs |
82 |
|
55 |
jgs |
123 |
dim_t numComp; |
56 |
|
|
index_t * label_col; |
57 |
jgs |
82 |
Finley_RefElement* referenceElement_col; |
58 |
jgs |
123 |
index_t* col_node; |
59 |
|
|
dim_t NN_col; |
60 |
|
|
dim_t NS_col; |
61 |
jgs |
82 |
|
62 |
jgs |
123 |
index_t id[MAX_numNodes]; /* used to hold a reordering vector, referenced by row_node and col_node */ |
63 |
jgs |
82 |
}; |
64 |
|
|
|
65 |
|
|
typedef struct Assemble_Parameters Assemble_Parameters; |
66 |
|
|
|
67 |
|
|
|
68 |
jgs |
123 |
typedef void (Finley_Assemble_handelShapeMissMatch) (dim_t, dim_t,dim_t, double*,dim_t, dim_t); |
69 |
jgs |
82 |
|
70 |
jgs |
150 |
void Finley_Assemble_PDE(Finley_NodeFile*,Finley_ElementFile*,Paso_SystemMatrix*,escriptDataC*, |
71 |
jgs |
82 |
escriptDataC*, escriptDataC*, escriptDataC*, escriptDataC*, escriptDataC*, escriptDataC*) ; |
72 |
jgs |
147 |
void Finley_Assemble_PDE_RHS(Finley_NodeFile*,Finley_ElementFile*,escriptDataC*,escriptDataC*,escriptDataC*) ; |
73 |
jgs |
150 |
void Finley_Assemble_RobinCondition(Finley_NodeFile*,Finley_ElementFile*,Paso_SystemMatrix*,escriptDataC*, |
74 |
jgs |
82 |
escriptDataC*,escriptDataC*,Finley_Assemble_handelShapeMissMatch) ; |
75 |
jgs |
147 |
void Finley_Assemble_RobinCondition_RHS(Finley_NodeFile*,Finley_ElementFile*,escriptDataC*,escriptDataC*,Finley_Assemble_handelShapeMissMatch); |
76 |
jgs |
150 |
/* void Finley_Assemble_Points(Finley_Mesh*,Paso_SystemMatrix*,escriptDataC*,escriptDataC*,escriptDataC*) ;*/ |
77 |
jgs |
82 |
void Finley_Assemble_NodeCoordinates(Finley_NodeFile*,escriptDataC*); |
78 |
|
|
void Finley_Assemble_setNormal(Finley_NodeFile*, Finley_ElementFile*, escriptDataC*); |
79 |
|
|
void Finley_Assemble_interpolate(Finley_NodeFile*,Finley_ElementFile*,escriptDataC*, escriptDataC*); |
80 |
|
|
void Finley_Assemble_gradient(Finley_NodeFile*, Finley_ElementFile*,escriptDataC*, escriptDataC*); |
81 |
|
|
void Finley_Assemble_integrate(Finley_NodeFile*,Finley_ElementFile*,escriptDataC*,double*) ; |
82 |
|
|
void Finley_Assemble_getSize(Finley_NodeFile*,Finley_ElementFile*, escriptDataC*); |
83 |
|
|
void Finley_Assemble_CopyNodalData(Finley_NodeFile* nodes,escriptDataC* out,escriptDataC* in); |
84 |
|
|
void Finley_Assemble_CopyElementData(Finley_ElementFile* elements,escriptDataC* out,escriptDataC* in); |
85 |
jgs |
123 |
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); |
86 |
|
|
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); |
87 |
|
|
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); |
88 |
|
|
void Finley_Assemble_RHSMatrix_Single(dim_t,dim_t,dim_t,double*,double*,double*,dim_t, double*,double*,dim_t,double*,dim_t); |
89 |
jgs |
82 |
|
90 |
|
|
|
91 |
jgs |
150 |
void Assemble_getAssembleParameters(Finley_NodeFile*,Finley_ElementFile*,Paso_SystemMatrix*,escriptDataC*,Assemble_Parameters*); |
92 |
jgs |
82 |
Finley_Assemble_handelShapeMissMatch Finley_Assemble_handelShapeMissMatch_Step_out; |
93 |
|
|
Finley_Assemble_handelShapeMissMatch Finley_Assemble_handelShapeMissMatch_Step_in; |
94 |
|
|
Finley_Assemble_handelShapeMissMatch Finley_Assemble_handelShapeMissMatch_Mean_out; |
95 |
|
|
Finley_Assemble_handelShapeMissMatch Finley_Assemble_handelShapeMissMatch_Mean_in; |
96 |
jgs |
150 |
void Finley_Assemble_addToSystemMatrix(Paso_SystemMatrix*,dim_t,index_t*, dim_t,dim_t,index_t*,dim_t, double*); |
97 |
jgs |
82 |
|
98 |
|
|
#endif /* #ifndef INC_FINLEY_ASSEMBLE */ |
99 |
|
|
|
100 |
|
|
/* |
101 |
|
|
* $Log$ |
102 |
jgs |
150 |
* Revision 1.4 2005/09/15 03:44:21 jgs |
103 |
|
|
* Merge of development branch dev-02 back to main trunk on 2005-09-15 |
104 |
|
|
* |
105 |
jgs |
147 |
* Revision 1.3 2005/08/12 01:45:42 jgs |
106 |
|
|
* erge of development branch dev-02 back to main trunk on 2005-08-12 |
107 |
|
|
* |
108 |
jgs |
150 |
* Revision 1.2.2.2 2005/09/07 06:26:17 gross |
109 |
|
|
* the solver from finley are put into the standalone package paso now |
110 |
|
|
* |
111 |
jgs |
147 |
* Revision 1.2.2.1 2005/08/04 22:41:11 gross |
112 |
|
|
* some extra routines for finley that might speed-up RHS assembling in some cases (not actived right now) |
113 |
|
|
* |
114 |
jgs |
123 |
* Revision 1.2 2005/07/08 04:07:45 jgs |
115 |
|
|
* Merge of development branch back to main trunk on 2005-07-08 |
116 |
jgs |
82 |
* |
117 |
jgs |
123 |
* Revision 1.1.1.1.2.1 2005/06/29 02:34:46 gross |
118 |
|
|
* some changes towards 64 integers in finley |
119 |
|
|
* |
120 |
|
|
* Revision 1.1.1.1 2004/10/26 06:53:56 jgs |
121 |
|
|
* initial import of project esys2 |
122 |
|
|
* |
123 |
jgs |
82 |
* Revision 1.1 2004/07/02 04:21:13 gross |
124 |
|
|
* Finley C code has been included |
125 |
|
|
* |
126 |
|
|
* |
127 |
|
|
*/ |