1 |
|
2 |
/******************************************************* |
3 |
* |
4 |
* Copyright (c) 2003-2008 by University of Queensland |
5 |
* Earth Systems Science Computational Center (ESSCC) |
6 |
* http://www.uq.edu.au/esscc |
7 |
* |
8 |
* Primary Business: Queensland, Australia |
9 |
* Licensed under the Open Software License version 3.0 |
10 |
* http://www.opensource.org/licenses/osl-3.0.php |
11 |
* |
12 |
*******************************************************/ |
13 |
|
14 |
|
15 |
/**************************************************************/ |
16 |
|
17 |
/* Paso: SystemMatrix and SystemVector */ |
18 |
|
19 |
/**************************************************************/ |
20 |
|
21 |
/* Copyrights by ACcESS Australia 2003,2004,2005 */ |
22 |
/* Author: gross@access.edu.au */ |
23 |
|
24 |
/**************************************************************/ |
25 |
|
26 |
#ifndef INC_PASO_OPTIONS |
27 |
#define INC_PASO_OPTIONS |
28 |
|
29 |
/* solver options */ |
30 |
|
31 |
#define PASO_DEFAULT 0 |
32 |
#define PASO_DIRECT 1 |
33 |
#define PASO_CHOLEVSKY 2 |
34 |
#define PASO_PCG 3 |
35 |
#define PASO_CR 4 |
36 |
#define PASO_CGS 5 |
37 |
#define PASO_BICGSTAB 6 |
38 |
#define PASO_SSOR 7 |
39 |
#define PASO_ILU0 8 |
40 |
#define PASO_ILUT 9 |
41 |
#define PASO_JACOBI 10 |
42 |
#define PASO_GMRES 11 |
43 |
#define PASO_PRES20 12 |
44 |
#define PASO_LUMPING 13 |
45 |
#define PASO_SCSL 14 |
46 |
#define PASO_MKL 15 |
47 |
#define PASO_UMFPACK 16 |
48 |
#define PASO_NO_REORDERING 17 |
49 |
#define PASO_MINIMUM_FILL_IN 18 |
50 |
#define PASO_NESTED_DISSECTION 19 |
51 |
#define PASO_ITERATIVE 20 |
52 |
#define PASO_PASO 21 |
53 |
#define PASO_RILU 22 |
54 |
#define PASO_AMG 23 |
55 |
#define PASO_TRILINOS 24 |
56 |
#define PASO_NONLINEAR_GMRES 25 |
57 |
#define PASO_TFQMR 26 |
58 |
#define PASO_MINRES 27 |
59 |
#define PASO_GS 28 |
60 |
|
61 |
typedef struct { |
62 |
index_t method; |
63 |
index_t package; |
64 |
bool_t symmetric; |
65 |
double tolerance; |
66 |
double absolute_tolerance; |
67 |
double inner_tolerance; |
68 |
bool_t adapt_inner_tolerance; |
69 |
|
70 |
bool_t verbose; |
71 |
bool_t reordering; |
72 |
double final_residual; |
73 |
index_t preconditioner; |
74 |
dim_t iter_max; |
75 |
dim_t inner_iter_max; |
76 |
dim_t iter; |
77 |
double drop_tolerance; |
78 |
double drop_storage; |
79 |
dim_t truncation; |
80 |
dim_t restart; |
81 |
dim_t sweeps; |
82 |
|
83 |
|
84 |
} Paso_Options; |
85 |
|
86 |
/* interfaces: */ |
87 |
|
88 |
void Paso_Options_setDefaults(Paso_Options* in); |
89 |
index_t Paso_Options_getPackage(index_t solver,index_t package, bool_t symmetry); |
90 |
index_t Paso_Options_getSolver(index_t solver,index_t package, bool_t symmetry); |
91 |
#define Paso_Options_copy(in,out) memcpy((Paso_Options*)out,(Paso_Options*)in,sizeof(Paso_Options)) |
92 |
|
93 |
#endif /* #ifndef INC_PASO_OPTIONS */ |