ParMooN
 All Classes Functions Variables Friends Pages
Solver.h
1 // =======================================================================
2 // @(#)Solver.h 1.9 06/27/00
3 //
4 // Purpose: solve equation system
5 //
6 // Author: Gunar Matthies (17.08.98)
7 //
8 // History: start of implementation 17.08.98 (Gunar Matthies)
9 //
10 // =======================================================================
11 
12 #ifndef __SOLVER__
13 #define __SOLVER__
14 
15 #include <SquareMatrix.h>
16 #include <Matrix.h>
17 
20 void Solver(TSquareMatrix *matrix, double *rhs, double *sol);
21 
22 void Solver(TSquareMatrix *matrix, double *rhs, double *sol, int N_Rhs);
23 
24 void Solver(int what, TSquareMatrix *matrix, double *rhs, double *sol,
25  int N_Rhs);
26 
27 void Solver(TSquareMatrix *matrix, TMatrix *matrixmortar,
28  double *rhs, double *sol);
29 
30 void Solver(TSquareMatrix *matrixa11, TMatrix *matrixa12,
31  TMatrix *matrixa21, TSquareMatrix *matrixa22,
32  double *rhs1, double *rhs2,
33  double *sol1, double *sol2);
34 
35 void Solver(TSquareMatrix *matrixa11, TSquareMatrix *matrixa12,
36  TSquareMatrix *matrixa22, TSquareMatrix *matrixa23,
37  TSquareMatrix *matrixa32, TSquareMatrix *matrixa33,
38  double *rhs1, double *rhs2, double *rhs3,
39  double *sol1, double *sol2, double *sol3);
40 
41 /*******************************************************************/
42 /* CONNECT SYSTEM FOR VMM [KL02] */
43 /*******************************************************************/
44 void Solver(TSquareMatrix *matrixa11, TMatrix *matrixa12, TMatrix *matrixa13,
45  TMatrix *matrixa21, TMatrix *matrixa31, TSquareMatrix *matrixa22,
46  double *rhs1, double *rhs2, double *rhs3,
47  double *sol1, double *sol2, double *sol3);
48 
49 /*******************************************************************/
50 /* Rosenbrock */
51 /*******************************************************************/
52 void Solver(TSquareMatrix *matrixa11, TSquareMatrix *matrixa12,
53  TSquareMatrix *matrixa21, TSquareMatrix *matrixa22,
54  double *rhs1, double *rhs2,
55  double *sol1, double *sol2);
56 
57 void Solver(TSquareMatrix *matrixa11, TSquareMatrix *matrixa12,
58  TSquareMatrix *matrixa22, TSquareMatrix *matrixa23,
59  TSquareMatrix *matrixa32, TSquareMatrix *matrixa33,
60  double *rhs1, double *rhs2, double *rhs3,
61  double *sol1, double *sol2, double *sol3);
62 
63 void Solver(TSquareMatrix *matrixa11, TSquareMatrix *matrixa12, TSquareMatrix *matrixa13,
64  TSquareMatrix *matrixa21, TSquareMatrix *matrixa22, TSquareMatrix *matrixa23,
65  TSquareMatrix *matrixa31, TSquareMatrix *matrixa32, TSquareMatrix *matrixa33,
66  double *rhs1, double *rhs2, double *rhs3,
67  double *sol1, double *sol2, double *sol3);
68 
69 void Solver(TSquareMatrix **sqmatrices, TMatrix **matrices, double *rhs,
70  double *sol, MatVecProc *MatVect, DefectProc *Defect,
71  TMultiGrid2D *MG, int N_Unknowns, int ns_type);
72 
73 #ifdef __2D__
74 
75 void Solver(TSquareMatrix *matrixA, TMatrix *matrixB1,
76  TMatrix *matrixB2, double *rhs, double *sol);
77 
79 void Solver(TSquareMatrix *matrixA, TMatrix *matrixB1,
80  TMatrix *matrixB2, TMatrix *matrixB3,
81  TMatrix *matrixB4, double *rhs, double *sol);
82 
84 void Solver(TSquareMatrix *matrixA11,TSquareMatrix *matrixA12,
85  TSquareMatrix *matrixA21,TSquareMatrix *matrixA22,
86  TMatrix *matrixB1, TMatrix *matrixB2,
87  double *rhs, double *sol);
88 
90 void Solver(TSquareMatrix *matrixA11,TSquareMatrix *matrixA12,
91  TSquareMatrix *matrixA21,TSquareMatrix *matrixA22,
92  TMatrix *matrixB1, TMatrix *matrixB2,
93  TMatrix *matrixB3, TMatrix *matrixB4,
94  double *rhs, double *sol);
95 
97 void Solver(TSquareMatrix *matrixA, TMatrix *matrixB1,
98  TMatrix *matrixB2, double *rhs, double *sol,
99  int para0);
100 
102 void Solver(TSquareMatrix *matrixA, TMatrix *matrixB1,
103  TMatrix *matrixB2, TMatrix *matrixB3,
104  TMatrix *matrixB4, double *rhs, double *sol,
105  int para0);
106 
108 void Solver(TSquareMatrix *matrixA11,TSquareMatrix *matrixA12,
109  TSquareMatrix *matrixA21,TSquareMatrix *matrixA22,
110  TMatrix *matrixB1, TMatrix *matrixB2,
111  double *rhs, double *sol, int para0);
112 
114 void Solver(TSquareMatrix *matrixA11,TSquareMatrix *matrixA12,
115  TSquareMatrix *matrixA21,TSquareMatrix *matrixA22,
116  TMatrix *matrixB1, TMatrix *matrixB2,
117  TMatrix *matrixB3, TMatrix *matrixB4,
118  double *rhs, double *sol, int para0);
119 
121 void Solver(TSquareMatrix *matrixA, TMatrix *matrixB1,
122  TMatrix *matrixB2, double *rhs, double *sol,double delta);
123 
125 void Solver(TSquareMatrix *matrixA, TMatrix *matrixB1,
126  TMatrix *matrixB2, TMatrix *matrixB3,
127  TMatrix *matrixB4, TMatrix *matrixmortar,
128  double *rhs, double *sol);
129 #endif
130 #ifdef __3D__
131 
132 void Solver(TSquareMatrix *matrixA, TMatrix *matrixB1,
133  TMatrix *matrixB2, TMatrix *matrixB3,
134  double *rhs, double *sol);
135 
137 void Solver(TSquareMatrix *matrixA, TMatrix *matrixB1,
138  TMatrix *matrixB2, TMatrix *matrixB3,
139  double *rhs, double *sol,
140  int para0);
141 
142 #endif
143 #endif
Definition: Matrix.h:21
Definition: MultiGrid2D.h:21
Definition: SquareMatrix.h:20