/[escript]/trunk/paso/src/Options.h
ViewVC logotype

Annotation of /trunk/paso/src/Options.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2828 - (hide annotations)
Tue Dec 22 01:24:40 2009 UTC (11 years, 10 months ago) by artak
File MIME type: text/plain
File size: 3435 byte(s)
Smoother for AMG now can be selected from python. Now only Jacobi and Gauss-Seidel are available as smoothers.
1 ksteube 1312
2     /*******************************************************
3 ksteube 1811 *
4 jfenwick 2548 * Copyright (c) 2003-2009 by University of Queensland
5 ksteube 1811 * 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 dhawcroft 631
14 ksteube 1811
15 jgs 150 /**************************************************************/
16    
17     /* Paso: SystemMatrix and SystemVector */
18    
19     /**************************************************************/
20    
21     /* Copyrights by ACcESS Australia 2003,2004,2005 */
22 jfenwick 2608 /* Author: Lutz Gross, l.gross@uq.edu.au */
23 jgs 150
24     /**************************************************************/
25    
26     #ifndef INC_PASO_OPTIONS
27     #define INC_PASO_OPTIONS
28    
29 gross 2315 #include "Paso_MPI.h"
30    
31 jgs 150 /* solver options */
32    
33     #define PASO_DEFAULT 0
34     #define PASO_DIRECT 1
35     #define PASO_CHOLEVSKY 2
36     #define PASO_PCG 3
37     #define PASO_CR 4
38     #define PASO_CGS 5
39     #define PASO_BICGSTAB 6
40     #define PASO_SSOR 7
41     #define PASO_ILU0 8
42     #define PASO_ILUT 9
43     #define PASO_JACOBI 10
44     #define PASO_GMRES 11
45     #define PASO_PRES20 12
46     #define PASO_LUMPING 13
47     #define PASO_NO_REORDERING 17
48     #define PASO_MINIMUM_FILL_IN 18
49     #define PASO_NESTED_DISSECTION 19
50 gross 2474 #define PASO_MKL 15
51     #define PASO_UMFPACK 16
52 jgs 150 #define PASO_ITERATIVE 20
53     #define PASO_PASO 21
54 gross 2474 #define PASO_AMG 22
55     #define PASO_REC_ILU 23
56     #define PASO_TRILINOS 24
57     #define PASO_NONLINEAR_GMRES 25
58     #define PASO_TFQMR 26
59     #define PASO_MINRES 27
60     #define PASO_GAUSS_SEIDEL 28
61     #define PASO_GS PASO_GAUSS_SEIDEL
62     #define PASO_RILU 29
63     #define PASO_DEFAULT_REORDERING 30
64     #define PASO_SUPER_LU 31
65     #define PASO_PASTIX 32
66     #define PASO_YAIR_SHAPIRA_COARSENING 33
67     #define PASO_RUGE_STUEBEN_COARSENING 34
68     #define PASO_AGGREGATION_COARSENING 35
69     #define PASO_NO_PRECONDITIONER 36
70 artak 2524 #define PASO_MIN_COARSE_MATRIX_SIZE 37
71 artak 2760 #define PASO_AMLI 38
72 artak 2816 #define PASO_STANDARD_COARSENING 39
73 jgs 150
74     typedef struct {
75     index_t method;
76     index_t package;
77     bool_t symmetric;
78     double tolerance;
79 gross 1476 double absolute_tolerance;
80     double inner_tolerance;
81     bool_t adapt_inner_tolerance;
82 jgs 150 bool_t verbose;
83     bool_t reordering;
84     index_t preconditioner;
85     dim_t iter_max;
86 gross 1476 dim_t inner_iter_max;
87 jgs 150 double drop_tolerance;
88     double drop_storage;
89 gross 2474 index_t truncation;
90     index_t restart;
91 artak 1823 dim_t sweeps;
92 gross 2446 dim_t pre_sweeps;
93     dim_t post_sweeps;
94     dim_t level_max;
95 artak 2524 dim_t min_coarse_matrix_size;
96 artak 2828 dim_t smoother;
97 gross 2446 double coarsening_threshold;
98 gross 2474 bool_t accept_failed_convergence;
99     index_t coarsening_method;
100     double relaxation_factor;
101 jgs 150
102 gross 2446 /* diagnostic values */
103 gross 2474 dim_t num_iter;
104 gross 2446 dim_t num_level;
105     dim_t num_inner_iter;
106     double time;
107 gross 2474 double set_up_time;
108 lgao 2596 double net_time;
109 gross 2474 double residual_norm;
110     bool_t converged;
111 gross 2446
112 jgs 150 } Paso_Options;
113    
114     /* interfaces: */
115    
116 phornby 2074
117     PASO_DLL_API
118 jgs 150 void Paso_Options_setDefaults(Paso_Options* in);
119 phornby 2074
120 gross 2474 PASO_DLL_API
121     void Paso_Options_show(const Paso_Options* options);
122    
123     PASO_DLL_API
124     void Paso_Options_showDiagnostics(const Paso_Options* options);
125     const char* Paso_Options_name(const index_t key);
126 gross 2315 index_t Paso_Options_getPackage(index_t solver,index_t package, bool_t symmetry, Paso_MPIInfo *mpi_info);
127 phornby 2074
128 gross 2315 index_t Paso_Options_getSolver(index_t solver,index_t package, bool_t symmetry, Paso_MPIInfo *mpi_info);
129 phornby 2074
130 gross 1639 #define Paso_Options_copy(in,out) memcpy((Paso_Options*)out,(Paso_Options*)in,sizeof(Paso_Options))
131 jgs 150
132     #endif /* #ifndef INC_PASO_OPTIONS */

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.26