ParMooN
 All Classes Functions Variables Friends Pages
amg_1d_prec.h
1 /****************************************************************************/
2 /* */
3 /* File: amg_1d_prec.h */
4 /* */
5 /* Purpose: header file for amg_1d_prec.c */
6 /* */
7 /* Author: Volker John */
8 /* Otto--von--Guericke Universitaet Magdeburg */
9 /* Institut fuer Analysis und Numerik */
10 /* Postfach 4120 */
11 /* 39016 Magdeburg */
12 /* email : volker.john@mathematik.uni-magdeburg.de */
13 /* */
14 /* History: 1998/02/19 start using this library for MooN_MD */
15 /* */
16 /* Remarks: 1998/06/08 start */
17 /* */
18 /****************************************************************************/
19 int prepare_steplength_control(int *A_length, int *B_length, int depth);
20 int clear_steplength_control(int depth);
21 
22 int ssor (AMG_SolverContext *sc, int k, int depth,
23  AMG_MATRIX *A[AMG_MAX_LEVELS], AMG_GRAPH *G[AMG_MAX_LEVELS],
24  AMG_MATRIX *M[AMG_MAX_LEVELS], AMG_MATRIX *B[AMG_MAX_LEVELS],
25  AMG_VECTOR *x[AMG_MAX_LEVELS],
26  AMG_VECTOR *b[AMG_MAX_LEVELS], AMG_VECTOR *d[AMG_MAX_LEVELS]);
27 int ssor_slc (AMG_SolverContext *sc, int k, int depth,
28  AMG_MATRIX *A[AMG_MAX_LEVELS], AMG_GRAPH *G[AMG_MAX_LEVELS],
29  AMG_MATRIX *M[AMG_MAX_LEVELS], AMG_MATRIX *B[AMG_MAX_LEVELS],
30  AMG_VECTOR *x[AMG_MAX_LEVELS],
31  AMG_VECTOR *b[AMG_MAX_LEVELS], AMG_VECTOR *d[AMG_MAX_LEVELS]);
32 int sor (AMG_SolverContext *sc, int k, int depth,
33  AMG_MATRIX *A[AMG_MAX_LEVELS], AMG_GRAPH *G[AMG_MAX_LEVELS],
34  AMG_MATRIX *M[AMG_MAX_LEVELS], AMG_MATRIX *B[AMG_MAX_LEVELS],
35  AMG_VECTOR *x[AMG_MAX_LEVELS],
36  AMG_VECTOR *b[AMG_MAX_LEVELS], AMG_VECTOR *d[AMG_MAX_LEVELS]);
37 int jac (AMG_SolverContext *sc, int k, int depth,
38  AMG_MATRIX *A[AMG_MAX_LEVELS], AMG_GRAPH *G[AMG_MAX_LEVELS],
39  AMG_MATRIX *M[AMG_MAX_LEVELS], AMG_MATRIX *B[AMG_MAX_LEVELS],
40  AMG_VECTOR *x[AMG_MAX_LEVELS],
41  AMG_VECTOR *b[AMG_MAX_LEVELS], AMG_VECTOR *d[AMG_MAX_LEVELS]);
42 int ex (AMG_SolverContext *sc, int k, int depth,
43  AMG_MATRIX *A[AMG_MAX_LEVELS], AMG_GRAPH *G[AMG_MAX_LEVELS],
44  AMG_MATRIX *M[AMG_MAX_LEVELS], AMG_MATRIX *B[AMG_MAX_LEVELS],
45  AMG_VECTOR *x[AMG_MAX_LEVELS],
46  AMG_VECTOR *b[AMG_MAX_LEVELS], AMG_VECTOR *d[AMG_MAX_LEVELS]);
47 
48 int prepare_ilu(AMG_SolverContext *sc,AMG_MATRIX *A[AMG_MAX_LEVELS],
49  AMG_MATRIX *M[AMG_MAX_LEVELS],int fine,int depth);
50 int clear_ilu(AMG_MATRIX *M[AMG_MAX_LEVELS],int fine,int depth);
51 int clear_ilut(AMG_MATRIX *M[AMG_MAX_LEVELS],int fine,int depth);
52 int ilu (AMG_SolverContext *sc, int k, int depth,
53  AMG_MATRIX *A[AMG_MAX_LEVELS], AMG_GRAPH *G[AMG_MAX_LEVELS],
54  AMG_MATRIX *M[AMG_MAX_LEVELS], AMG_MATRIX *B[AMG_MAX_LEVELS],
55  AMG_VECTOR *x[AMG_MAX_LEVELS],
56  AMG_VECTOR *b[AMG_MAX_LEVELS], AMG_VECTOR *d[AMG_MAX_LEVELS]);
57 
58 int clear_mgc(AMG_MATRIX *A[AMG_MAX_LEVELS],AMG_GRAPH *G[AMG_MAX_LEVELS],int depth);
59 int prepare_coupled_mgc(AMG_SolverContext *sc,int *A_length,int *B_length, int depth);
60 int clear_coupled_mgc(AMG_MATRIX *A[AMG_MAX_LEVELS],AMG_GRAPH *G[AMG_MAX_LEVELS],int depth);
61 int mgc (AMG_SolverContext *sc, int k, int depth,
62  AMG_MATRIX *A[AMG_MAX_LEVELS], AMG_GRAPH *G[AMG_MAX_LEVELS],
63  AMG_MATRIX *M[AMG_MAX_LEVELS], AMG_MATRIX *B[AMG_MAX_LEVELS],
64  AMG_VECTOR *x[AMG_MAX_LEVELS],
65  AMG_VECTOR *b[AMG_MAX_LEVELS], AMG_VECTOR *d[AMG_MAX_LEVELS]);
66 
67 int clear_ex(AMG_MATRIX *M[AMG_MAX_LEVELS],int depth);
68 AMG_MATRIX *prepare_ex (AMG_MATRIX *A);
69 AMG_MATRIX *ILUDecomposition(AMG_SolverContext *sc, AMG_MATRIX *A);
70 AMG_MATRIX *ILUTDecomposition(AMG_SolverContext *sc, AMG_MATRIX *A);
71 
72 
73 int pc_restrict (AMG_GRAPH *g,AMG_GRAPH *g1, AMG_VECTOR *fine, AMG_VECTOR *coarse);
74 int pc_prolongate_auto (AMG_GRAPH *g,AMG_GRAPH *g1, AMG_VECTOR *fine, AMG_VECTOR *coarse, double *damp);
75 int pc_restrict_2d (AMG_GRAPH *g,AMG_GRAPH *g1, AMG_VECTOR *fine, AMG_VECTOR *coarse);
76 int pc_prolongate_auto_2d (AMG_GRAPH *g,AMG_GRAPH *g1, AMG_VECTOR *fine, AMG_VECTOR *coarse, double *damp);
77 int pc_restrict_saddle_2d (AMG_GRAPH *g, AMG_GRAPH *g1, AMG_VECTOR *fine, AMG_VECTOR *coarse);
78 int pc_prolongate_auto_saddle_2d (AMG_GRAPH *g, AMG_GRAPH *g1, AMG_VECTOR *fine, AMG_VECTOR *coarse, double *damp);
79 int pc_restrict_3d (AMG_GRAPH *g,AMG_GRAPH *g1, AMG_VECTOR *fine, AMG_VECTOR *coarse);
80 int pc_prolongate_auto_3d (AMG_GRAPH *g,AMG_GRAPH *g1, AMG_VECTOR *fine, AMG_VECTOR *coarse, double *damp);
81 int pc_restrict_6d (AMG_GRAPH *g,AMG_GRAPH *g1, AMG_VECTOR *fine, AMG_VECTOR *coarse);
82 int pc_prolongate_auto_6d (AMG_GRAPH *g,AMG_GRAPH *g1, AMG_VECTOR *fine, AMG_VECTOR *coarse, double *damp);
83 
84 int ApplyRowEquilibration(AMG_SolverContext *sc,AMG_MATRIX *A);
85 int EquilibrateRHS(AMG_VECTOR *b,AMG_VECTOR *equi);
86 int DisApplyRowEquilibration(AMG_SolverContext *sc,AMG_MATRIX *A,AMG_VECTOR *b);
87 
88 
89 int sor_trans (AMG_SolverContext *sc, int k, int depth,
90  AMG_MATRIX *A[AMG_MAX_LEVELS], AMG_GRAPH *G[AMG_MAX_LEVELS],
91  AMG_MATRIX *M[AMG_MAX_LEVELS], AMG_MATRIX *B[AMG_MAX_LEVELS],
92  AMG_VECTOR *x[AMG_MAX_LEVELS],
93  AMG_VECTOR *b[AMG_MAX_LEVELS], AMG_VECTOR *d[AMG_MAX_LEVELS]);
94 
95 int ssor_trans (AMG_SolverContext *sc, int k, int depth,
96  AMG_MATRIX *A[AMG_MAX_LEVELS], AMG_GRAPH *G[AMG_MAX_LEVELS],
97  AMG_MATRIX *M[AMG_MAX_LEVELS], AMG_MATRIX *B[AMG_MAX_LEVELS],
98  AMG_VECTOR *x[AMG_MAX_LEVELS],
99  AMG_VECTOR *b[AMG_MAX_LEVELS], AMG_VECTOR *d[AMG_MAX_LEVELS]);
100 
101 int ilu_trans (AMG_SolverContext *sc, int k, int depth,
102  AMG_MATRIX *A[AMG_MAX_LEVELS], AMG_GRAPH *G[AMG_MAX_LEVELS],
103  AMG_MATRIX *M[AMG_MAX_LEVELS], AMG_MATRIX *B[AMG_MAX_LEVELS],
104  AMG_VECTOR *x[AMG_MAX_LEVELS],
105  AMG_VECTOR *b[AMG_MAX_LEVELS], AMG_VECTOR *d[AMG_MAX_LEVELS]);
106 
107 int ComputeArraysForTransposedMatrix(AMG_MATRIX *A);
Definition: amg_sp.h:70
Definition: amg_coarsen.h:82
Definition: amg_sp.h:96
Definition: amg_solve.h:90