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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3259 - (hide annotations)
Mon Oct 11 01:48:14 2010 UTC (9 years ago) by jfenwick
File MIME type: text/plain
File size: 3550 byte(s)
Merging dudley and scons updates from branches

1 ksteube 1312
2     /*******************************************************
3 ksteube 1811 *
4 jfenwick 2881 * Copyright (c) 2003-2010 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 jfenwick 3259 #include "esysUtils/Esys_MPI.h"
30 gross 2315
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_ILU0 8
41     #define PASO_ILUT 9
42     #define PASO_JACOBI 10
43     #define PASO_GMRES 11
44     #define PASO_PRES20 12
45     #define PASO_LUMPING 13
46     #define PASO_NO_REORDERING 17
47     #define PASO_MINIMUM_FILL_IN 18
48     #define PASO_NESTED_DISSECTION 19
49 gross 2474 #define PASO_MKL 15
50     #define PASO_UMFPACK 16
51 jgs 150 #define PASO_ITERATIVE 20
52     #define PASO_PASO 21
53 gross 2474 #define PASO_AMG 22
54     #define PASO_REC_ILU 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_GAUSS_SEIDEL 28
60     #define PASO_GS PASO_GAUSS_SEIDEL
61     #define PASO_RILU 29
62     #define PASO_DEFAULT_REORDERING 30
63     #define PASO_SUPER_LU 31
64     #define PASO_PASTIX 32
65 gross 3094 #define PASO_STANDARD_COARSENING 39
66 gross 2474 #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 jgs 150
73     typedef struct {
74     index_t method;
75     index_t package;
76     bool_t symmetric;
77     double tolerance;
78 gross 1476 double absolute_tolerance;
79     double inner_tolerance;
80     bool_t adapt_inner_tolerance;
81 jgs 150 bool_t verbose;
82     bool_t reordering;
83     index_t preconditioner;
84     dim_t iter_max;
85 gross 1476 dim_t inner_iter_max;
86 jgs 150 double drop_tolerance;
87     double drop_storage;
88 gross 2474 index_t truncation;
89     index_t restart;
90 artak 1823 dim_t sweeps;
91 gross 2446 dim_t pre_sweeps;
92     dim_t post_sweeps;
93     dim_t level_max;
94 artak 2524 dim_t min_coarse_matrix_size;
95 artak 2828 dim_t smoother;
96 gross 2446 double coarsening_threshold;
97 gross 2474 bool_t accept_failed_convergence;
98     index_t coarsening_method;
99     double relaxation_factor;
100 gross 3094 bool_t use_local_preconditioner;
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 3094 double preconditioner_size; /* in Mbytes */
112 gross 3111 bool_t time_step_backtracking_used;
113 gross 2446
114 jgs 150 } Paso_Options;
115    
116     /* interfaces: */
117    
118 phornby 2074
119     PASO_DLL_API
120 jgs 150 void Paso_Options_setDefaults(Paso_Options* in);
121 phornby 2074
122 gross 2474 PASO_DLL_API
123     void Paso_Options_show(const Paso_Options* options);
124    
125     PASO_DLL_API
126     void Paso_Options_showDiagnostics(const Paso_Options* options);
127     const char* Paso_Options_name(const index_t key);
128 jfenwick 3259 index_t Paso_Options_getPackage(index_t solver,index_t package, bool_t symmetry, Esys_MPIInfo *mpi_info);
129 phornby 2074
130 jfenwick 3259 index_t Paso_Options_getSolver(index_t solver,index_t package, bool_t symmetry, Esys_MPIInfo *mpi_info);
131 phornby 2074
132 gross 1639 #define Paso_Options_copy(in,out) memcpy((Paso_Options*)out,(Paso_Options*)in,sizeof(Paso_Options))
133 jgs 150
134     #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