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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3440 - (show annotations)
Fri Jan 14 00:04:53 2011 UTC (8 years, 10 months ago) by gross
File MIME type: text/plain
File size: 4044 byte(s)
a second AMG interpolation implemented
1
2 /*******************************************************
3 *
4 * Copyright (c) 2003-2010 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: Lutz Gross, l.gross@uq.edu.au */
23
24 /**************************************************************/
25
26 #ifndef INC_PASO_OPTIONS
27 #define INC_PASO_OPTIONS
28
29 #include "esysUtils/Esys_MPI.h"
30
31 /* 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 #define PASO_MKL 15
50 #define PASO_UMFPACK 16
51 #define PASO_ITERATIVE 20
52 #define PASO_PASO 21
53 #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 #define PASO_STANDARD_COARSENING 39
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 #define PASO_MIN_COARSE_MATRIX_SIZE 37
71 #define PASO_AMLI 38
72 #define PASO_CLASSIC_INTERPOLATION_WITH_FF_COUPLING 50
73 #define PASO_CLASSIC_INTERPOLATION 51
74 #define PASO_DIRECT_INTERPOLATION 52
75
76
77
78 #define PASO_SMOOTHER 99999999
79
80 typedef struct {
81 index_t method;
82 index_t package;
83 bool_t symmetric;
84 double tolerance;
85 double absolute_tolerance;
86 double inner_tolerance;
87 bool_t adapt_inner_tolerance;
88 bool_t verbose;
89 bool_t reordering;
90 index_t preconditioner;
91 dim_t iter_max;
92 dim_t inner_iter_max;
93 double drop_tolerance;
94 double drop_storage;
95 index_t truncation;
96 index_t restart;
97 dim_t sweeps;
98 dim_t pre_sweeps;
99 dim_t post_sweeps;
100 dim_t level_max;
101 dim_t min_coarse_matrix_size;
102 dim_t smoother;
103 double coarsening_threshold;
104 bool_t accept_failed_convergence;
105 index_t coarsening_method;
106 double relaxation_factor;
107 bool_t use_local_preconditioner;
108 double min_coarse_sparsity;
109 dim_t refinements;
110 dim_t coarse_matrix_refinements;
111 double diagonal_dominance_threshold;
112 bool_t usePanel;
113 index_t interpolation_method;
114
115 /* diagnostic values */
116 dim_t num_iter;
117 dim_t num_level;
118 dim_t num_inner_iter;
119 double time;
120 double set_up_time;
121 double coarsening_selection_time;
122 double coarsening_matrix_time;
123 double net_time;
124 double residual_norm;
125 bool_t converged;
126 double preconditioner_size; /* in Mbytes */
127 bool_t time_step_backtracking_used;
128 double coarse_level_sparsity;
129 dim_t num_coarse_unknowns;
130
131 } Paso_Options;
132
133 /* interfaces: */
134
135
136 PASO_DLL_API
137 void Paso_Options_setDefaults(Paso_Options* in);
138
139 PASO_DLL_API
140 void Paso_Options_show(const Paso_Options* options);
141
142 PASO_DLL_API
143 void Paso_Options_showDiagnostics(const Paso_Options* options);
144 const char* Paso_Options_name(const index_t key);
145 index_t Paso_Options_getPackage(index_t solver,index_t package, bool_t symmetry, Esys_MPIInfo *mpi_info);
146
147 index_t Paso_Options_getSolver(index_t solver,index_t package, bool_t symmetry, Esys_MPIInfo *mpi_info);
148
149 #define Paso_Options_copy(in,out) memcpy((Paso_Options*)out,(Paso_Options*)in,sizeof(Paso_Options))
150
151 #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