Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/fhutiter/src/huti_fdefs.h
3206 views
1
2
! Fortran preprocessor definitions for HUTIter library
3
!
4
! $Id: huti_fdefs.h,v 1.1.1.1 2005/04/15 10:31:18 vierinen Exp $
5
6
#ifndef _H_HUTI_FDEFS
7
#define _H_HUTI_FDEFS
8
9
! HUTI defaults
10
11
#define HUTI_DFLTMAXIT 5000
12
#define HUTI_DFLTMINIT 0
13
#define HUTI_DFLTTOLERANCE 0.000001
14
#define HUTI_DFLTDBUGLVL 0
15
#define HUTI_DFLTPROCS 1
16
#define HUTI_EPSILON 1.17549435E-38
17
18
! HUTI status flags
19
20
#define HUTI_OK 0
21
#define HUTI_CONVERGENCE 1
22
#define HUTI_MAXITER 2
23
#define HUTI_DIVERGENCE 3
24
#define HUTI_HALTED 4
25
26
! QMR method
27
28
#define HUTI_QMR_RHO_PSI 10
29
#define HUTI_QMR_DELTA 11
30
#define HUTI_QMR_EPSILON 12
31
#define HUTI_QMR_BETA 13
32
#define HUTI_QMR_GAMMA 14
33
34
! CG method
35
36
#define HUTI_CG_RHO 20
37
38
! CGS method
39
40
#define HUTI_CGS_RHO 25
41
42
! TFQMR method
43
44
#define HUTI_TFQMR_RHO 30
45
46
! BiCGSTAB method
47
48
#define HUTI_BICGSTAB_RHO 35
49
#define HUTI_BICGSTAB_SNORM 36
50
#define HUTI_BICGSTAB_OMEGA 37
51
52
! GMRES method
53
54
#define HUTI_GMRES_ALPHA 40
55
#define HUTI_GMRES_BETA 41
56
57
! BiCGSTAB(2) method
58
59
#define HUTI_BICGSTAB_2_RHO 45
60
61
! HUTI debug levels
62
63
#define HUTI_NO_DEBUG 0
64
#define HUTI_ITEROUTPUT 1
65
66
! Initial X for solvers
67
68
#define HUTI_RANDOMX 0
69
#define HUTI_USERSUPPLIEDX 1
70
71
! Matrix type in external operations
72
73
#define HUTI_MAT_NOTTRPSED 0
74
#define HUTI_MAT_TRPSED 1
75
76
! Storage allocation for various methods
77
78
#define HUTI_CG_WORKSIZE 4
79
#define HUTI_CGS_WORKSIZE 7
80
#define HUTI_BICGSTAB_WORKSIZE 8
81
#define HUTI_QMR_WORKSIZE 14
82
#define HUTI_TFQMR_WORKSIZE 10
83
#define HUTI_GMRES_WORKSIZE 7
84
#define HUTI_BICGSTAB_2_WORKSIZE 8
85
86
! Different stopping criteria
87
88
#define HUTI_TRUERESIDUAL 0
89
#define HUTI_TRESID_SCALED_BYB 1
90
#define HUTI_PSEUDORESIDUAL 2
91
#define HUTI_PRESID_SCALED_BYB 3
92
#define HUTI_PRESID_SCALED_BYPRECB 4
93
#define HUTI_XDIFF_NORM 5
94
#define HUTI_UPPERB_STOPC 6
95
#define HUTI_USUPPLIED_STOPC 10
96
97
!
98
! HUTI ipar structure (used for various parameters)
99
!
100
101
#define HUTI_IPAR_DFLTSIZE 50
102
103
! Input parameters supplied by user or by initialization
104
!
105
! General parameters (1-9)
106
107
#define HUTI_IPAR_LEN ipar(1)
108
#define HUTI_DPAR_LEN ipar(2)
109
#define HUTI_NDIM ipar(3)
110
#define HUTI_WRKDIM ipar(4)
111
#define HUTI_DBUGLVL ipar(5)
112
#define HUTI_EXTOP_MATTYPE ipar(6)
113
#define HUTI_PSEUDOCOMPLEX ipar(7)
114
115
! Iteration parameters (10-19)
116
117
#define HUTI_MAXIT ipar(10)
118
#define HUTI_MINIT ipar(11)
119
#define HUTI_STOPC ipar(12)
120
#define HUTI_PCOND ipar(13)
121
#define HUTI_INITIALX ipar(14)
122
#define HUTI_GMRES_RESTART ipar(15)
123
#define HUTI_BICGSTABL_L ipar(16)
124
#define HUTI_GCR_RESTART ipar(17)
125
#define HUTI_IDRS_S ipar(18)
126
127
! Parallel environment parameters (20-29)
128
#define HUTI_MYPROC ipar(20)
129
#define HUTI_PROCS ipar(21)
130
131
! Robust methods
132
#define HUTI_ROBUST ipar(26)
133
#define HUTI_ROBUST_MAXBADIT ipar(27)
134
#define HUTI_SMOOTHING ipar(28)
135
#define HUTI_ROBUST_START ipar(29)
136
137
! Output parameters (30-39)
138
!
139
140
#define HUTI_INFO ipar(30)
141
#define HUTI_ITERS ipar(31)
142
143
!
144
! HUTI dpar structure (used for various parameters)
145
!
146
147
#define HUTI_DPAR_DFLTSIZE 10
148
149
! Input parameters supplied by user
150
151
#define HUTI_TOLERANCE dpar(1)
152
#define HUTI_MAXTOLERANCE dpar(2)
153
#define HUTI_ROBUST_TOLERANCE dpar(3)
154
#define HUTI_ROBUST_STEPSIZE dpar(4)
155
#define HUTI_ROBUST_MAXTOLERANCE dpar(5)
156
!
157
! End of definitions
158
!
159
160
#endif
161
162