MueLu  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MueLu_MasterList.cpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // MueLu: A package for multigrid based preconditioning
4 //
5 // Copyright 2012 NTESS and the MueLu contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 // clang-format off
12 
13 #include "MueLu_Exceptions.hpp"
14 #include "MueLu_MasterList.hpp"
15 
16 namespace MueLu {
17 
19  if (masterList_.is_null()) {
20  masterList_ = Teuchos::getParametersFromXmlString(stringList_);
21  }
22 
23  return masterList_;
24  }
25 
27 
28  if ( (problemType != problemType_) || problemSpecificList_.is_null() ) {
29  if (DefaultProblemTypeLists_.find(problemType) != DefaultProblemTypeLists_.end()) {
30  problemType_ = problemType;
31  problemSpecificList_ = Teuchos::getParametersFromXmlString(DefaultProblemTypeLists_[problemType]);
32  } else {
33  //TODO provide valid problem types
34  TEUCHOS_TEST_FOR_EXCEPTION(true, MueLu::Exceptions::RuntimeError, "Invalid problem type " << problemType << ".");
35  }
36  }
37  return problemSpecificList_;
38  }
39 
40  std::string MasterList::interpretParameterName(const std::string& name, const std::string& value) {
41 
42  // used to concatenate the return string
43  std::stringstream ss;
44 
45  // put in short cuts here!
46 
47  if (name == "verbosity") {
48  std::string verb = "none";
49  if (value == "\"0\"") verb = "none";
50  if (value == "\"1\"" || value == "\"2\"" || value == "\"3\"") verb = "low";
51  if (value == "\"4\"" || value == "\"5\"" || value == "\"6\"") verb = "medium";
52  if (value == "\"7\"" || value == "\"8\"") verb = "high";
53  if (value == "\"9\"") verb = "extreme";
54  if (value == "\"10\"") verb = "test";
55  verb = "\"" + verb + "\"";
56  ss << "<Parameter name=\"verbosity\" type=\"string\" value=" << verb << "/>";
57  return ss.str();
58  }
59 
60  if (name == "cycle type") {
61  std::stringstream temp1; temp1 << "\"" << "MGV" << "\"";
62  std::stringstream temp2; temp2 << "\"" << "MGV" << "\"";
63  if (value == temp1.str() ) { ss << "<Parameter name=\"cycle type\" type=\"string\" value=\"V\"/>"; }
64  else if (value == temp2.str()) { ss << "<Parameter name=\"cycle type\" type=\"string\" value=\"W\"/>"; }
65  else TEUCHOS_TEST_FOR_EXCEPTION(true, MueLu::Exceptions::RuntimeError, "MasterList::interpretParameterName, Line " << __LINE__ << ". "
66  << "The parameter " << value << " is not supported by MueLu.");
67  return ss.str();
68  }
69 
70  // energy minimization is enabled
71  if (name == "multigrid algorithm") {
72  std::stringstream temp; temp << "\"" << "1" << "\"";
73  if (value == temp.str() ) { ss << "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"pg\"/>"; return ss.str(); }
74  }
75 
76  // put in auto-generated code here
77 
78 
79  if (name == "output filename") { ss << "<Parameter name=\"output filename\" type=\"string\" value=" << value << "/>"; return ss.str(); }
80  if (name == "number of equations") { ss << "<Parameter name=\"number of equations\" type=\"int\" value=" << value << "/>"; return ss.str(); }
81  if (name == "max levels") { ss << "<Parameter name=\"max levels\" type=\"int\" value=" << value << "/>"; return ss.str(); }
82  if (name == "W cycle start level") { ss << "<Parameter name=\"W cycle start level\" type=\"int\" value=" << value << "/>"; return ss.str(); }
83  if (name == "coarse grid correction scaling factor") { ss << "<Parameter name=\"coarse grid correction scaling factor\" type=\"double\" value=" << value << "/>"; return ss.str(); }
84  if (name == "fuse prolongation and update") { ss << "<Parameter name=\"fuse prolongation and update\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
85  if (name == "number of vectors") { ss << "<Parameter name=\"number of vectors\" type=\"int\" value=" << value << "/>"; return ss.str(); }
86  if (name == "problem: symmetric") { ss << "<Parameter name=\"problem: symmetric\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
87  if (name == "hierarchy label") { ss << "<Parameter name=\"hierarchy label\" type=\"string\" value=" << value << "/>"; return ss.str(); }
88  if (name == "aggregation: drop tol") { ss << "<Parameter name=\"aggregation: drop tol\" type=\"double\" value=" << value << "/>"; return ss.str(); }
89  if (name == "print initial parameters") { ss << "<Parameter name=\"print initial parameters\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
90  if (name == "print unused parameters") { ss << "<Parameter name=\"print unused parameters\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
91  if (name == "sa: damping factor") { ss << "<Parameter name=\"sa: damping factor\" type=\"double\" value=" << value << "/>"; return ss.str(); }
92  if (name == "sa: use filtered matrix") { ss << "<Parameter name=\"sa: use filtered matrix\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
93  if (name == "sa: eigen-analysis type") { ss << "<Parameter name=\"sa: eigen-analysis type\" type=\"string\" value=" << value << "/>"; return ss.str(); }
94  if (name == "sa: eigenvalue estimate num iterations") { ss << "<Parameter name=\"sa: eigenvalue estimate num iterations\" type=\"int\" value=" << value << "/>"; return ss.str(); }
95  if (name == "sa: use rowsumabs diagonal scaling") { ss << "<Parameter name=\"sa: use rowsumabs diagonal scaling\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
96  if (name == "sa: enforce constraints") { ss << "<Parameter name=\"sa: enforce constraints\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
97  if (name == "sa: max eigenvalue") { ss << "<Parameter name=\"sa: max eigenvalue\" type=\"double\" value=" << value << "/>"; return ss.str(); }
98  if (name == "sa: rowsumabs diagonal replacement tolerance") { ss << "<Parameter name=\"sa: rowsumabs diagonal replacement tolerance\" type=\"double\" value=" << value << "/>"; return ss.str(); }
99  if (name == "sa: rowsumabs use automatic diagonal tolerance") { ss << "<Parameter name=\"sa: rowsumabs use automatic diagonal tolerance\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
100  if (name == "sa: rowsumabs diagonal replacement value") { ss << "<Parameter name=\"sa: rowsumabs diagonal replacement value\" type=\"double\" value=" << value << "/>"; return ss.str(); }
101  if (name == "sa: rowsumabs replace single entry row with zero") { ss << "<Parameter name=\"sa: rowsumabs replace single entry row with zero\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
102  if (name == "replicate: npdes") { ss << "<Parameter name=\"replicate: npdes\" type=\"int\" value=" << value << "/>"; return ss.str(); }
103  if (name == "combine: numBlks") { ss << "<Parameter name=\"combine: numBlks\" type=\"int\" value=" << value << "/>"; return ss.str(); }
104  if (name == "combine: useMaxLevels") { ss << "<Parameter name=\"combine: useMaxLevels\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
105  if (name == "pcoarsen: element") { ss << "<Parameter name=\"pcoarsen: element\" type=\"string\" value=" << value << "/>"; return ss.str(); }
106  if (name == "pcoarsen: schedule") { ss << "<Parameter name=\"pcoarsen: schedule\" type=\"string\" value=" << value << "/>"; return ss.str(); }
107  if (name == "pcoarsen: hi basis") { ss << "<Parameter name=\"pcoarsen: hi basis\" type=\"string\" value=" << value << "/>"; return ss.str(); }
108  if (name == "pcoarsen: lo basis") { ss << "<Parameter name=\"pcoarsen: lo basis\" type=\"string\" value=" << value << "/>"; return ss.str(); }
109  if (name == "smoother: neighborhood type") { ss << "<Parameter name=\"smoother: neighborhood type\" type=\"string\" value=" << value << "/>"; return ss.str(); }
110  if (name == "tentative: calculate qr") { ss << "<Parameter name=\"tentative: calculate qr\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
111  if (name == "tentative: constant column sums") { ss << "<Parameter name=\"tentative: constant column sums\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
112  if (name == "repartition: enable") { ss << "<Parameter name=\"repartition: enable\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
113  if (name == "repartition: start level") { ss << "<Parameter name=\"repartition: start level\" type=\"int\" value=" << value << "/>"; return ss.str(); }
114  if (name == "repartition: use map") { ss << "<Parameter name=\"repartition: use map\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
115  if (name == "repartition: use subcommunicators in place") { ss << "<Parameter name=\"repartition: use subcommunicators in place\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
116  if (name == "repartition: node repartition level") { ss << "<Parameter name=\"repartition: node repartition level\" type=\"int\" value=" << value << "/>"; return ss.str(); }
117  if (name == "repartition: node id") { ss << "<Parameter name=\"repartition: node id\" type=\"int\" value=" << value << "/>"; return ss.str(); }
118  if (name == "repartition: min rows per proc") { ss << "<Parameter name=\"repartition: min rows per proc\" type=\"int\" value=" << value << "/>"; return ss.str(); }
119  if (name == "repartition: max imbalance") { ss << "<Parameter name=\"repartition: max imbalance\" type=\"double\" value=" << value << "/>"; return ss.str(); }
120  if (name == "repartition: put on single proc") { ss << "<Parameter name=\"repartition: put on single proc\" type=\"int\" value=" << value << "/>"; return ss.str(); }
121  if (name == "use external multigrid package") { ss << "<Parameter name=\"use external multigrid package\" type=\"string\" value=" << value << "/>"; return ss.str(); }
122  if (name == "maxwell1: dump matrices") { ss << "<Parameter name=\"maxwell1: dump matrices\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
123  if (name == "refmaxwell: mode") { ss << "<Parameter name=\"refmaxwell: mode\" type=\"string\" value=" << value << "/>"; return ss.str(); }
124  if (name == "refmaxwell: disable addon") { ss << "<Parameter name=\"refmaxwell: disable addon\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
125  if (name == "refmaxwell: use as preconditioner") { ss << "<Parameter name=\"refmaxwell: use as preconditioner\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
126  if (name == "refmaxwell: dump matrices") { ss << "<Parameter name=\"refmaxwell: dump matrices\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
127  if (name == "refmaxwell: subsolves on subcommunicators") { ss << "<Parameter name=\"refmaxwell: subsolves on subcommunicators\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
128  if (name == "refmaxwell: enable reuse") { ss << "<Parameter name=\"refmaxwell: enable reuse\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
129  if (name == "refmaxwell: skip first (1,1) level") { ss << "<Parameter name=\"refmaxwell: skip first (1,1) level\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
130  if (name == "refmaxwell: normalize nullspace") { ss << "<Parameter name=\"refmaxwell: normalize nullspace\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
131  return "";
132  }
133 
136  std::string MasterList::problemType_ = "unknown";
137  const std::string MasterList::stringList_ =
138 "<ParameterList name=\"MueLu\">"
139  "<Parameter name=\"problem: type\" type=\"string\" value=\"unknown\"/>"
140  "<Parameter name=\"verbosity\" type=\"string\" value=\"high\"/>"
141  "<Parameter name=\"output filename\" type=\"string\" value=\"\"/>"
142  "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>"
143  "<Parameter name=\"max levels\" type=\"int\" value=\"10\"/>"
144  "<Parameter name=\"cycle type\" type=\"string\" value=\"V\"/>"
145  "<Parameter name=\"W cycle start level\" type=\"int\" value=\"0\"/>"
146  "<Parameter name=\"coarse grid correction scaling factor\" type=\"double\" value=\"1.0\"/>"
147  "<Parameter name=\"fuse prolongation and update\" type=\"bool\" value=\"true\"/>"
148  "<Parameter name=\"number of vectors\" type=\"int\" value=\"1\"/>"
149  "<Parameter name=\"problem: symmetric\" type=\"bool\" value=\"true\"/>"
150  "<Parameter name=\"xml parameter file\" type=\"string\" value=\"\"/>"
151  "<Parameter name=\"parameterlist: syntax\" type=\"string\" value=\"muelu\"/>"
152  "<Parameter name=\"hierarchy label\" type=\"string\" value=\"\"/>"
153  "<ParameterList name=\"matvec params\"/>"
154  "<Parameter name=\"half precision\" type=\"bool\" value=\"false\"/>"
155  "<Parameter name=\"smoother: pre or post\" type=\"string\" value=\"both\"/>"
156  "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>"
157  "<Parameter name=\"smoother: pre type\" type=\"string\" value=\"RELAXATION\"/>"
158  "<Parameter name=\"smoother: post type\" type=\"string\" value=\"RELAXATION\"/>"
159  "<ParameterList name=\"smoother: params\"/>"
160  "<ParameterList name=\"smoother: pre params\"/>"
161  "<ParameterList name=\"smoother: post params\"/>"
162  "<Parameter name=\"smoother: overlap\" type=\"int\" value=\"0\"/>"
163  "<Parameter name=\"smoother: pre overlap\" type=\"int\" value=\"0\"/>"
164  "<Parameter name=\"smoother: post overlap\" type=\"int\" value=\"0\"/>"
165  "<Parameter name=\"coarse: max size\" type=\"int\" value=\"2000\"/>"
166  "<Parameter name=\"coarse: type\" type=\"string\" value=\"KLU\"/>"
167  "<ParameterList name=\"coarse: params\"/>"
168  "<Parameter name=\"coarse: overlap\" type=\"int\" value=\"0\"/>"
169  "<Parameter name=\"aggregation: backend\" type=\"string\" value=\"default\"/>"
170  "<Parameter name=\"aggregation: type\" type=\"string\" value=\"uncoupled\"/>"
171  "<Parameter name=\"aggregation: mode\" type=\"string\" value=\"uncoupled\"/>"
172  "<Parameter name=\"aggregation: ordering\" type=\"string\" value=\"natural\"/>"
173  "<Parameter name=\"aggregation: phase 1 algorithm\" type=\"string\" value=\"Distance2\"/>"
174  "<Parameter name=\"aggregation: symmetrize graph after dropping\" type=\"bool\" value=\"false\"/>"
175  "<Parameter name=\"aggregation: use blocking\" type=\"bool\" value=\"false\"/>"
176  "<Parameter name=\"aggregation: drop scheme\" type=\"string\" value=\"classical\"/>"
177  "<Parameter name=\"aggregation: strength-of-connection: matrix\" type=\"string\" value=\"A\"/>"
178  "<Parameter name=\"aggregation: strength-of-connection: measure\" type=\"string\" value=\"smoothed aggregation\"/>"
179  "<Parameter name=\"aggregation: classical scheme\" type=\"string\" value=\"direct\"/>"
180  "<Parameter name=\"aggregation: row sum drop tol\" type=\"double\" value=\"-1.0\"/>"
181  "<Parameter name=\"aggregation: block diagonal: interleaved blocksize\" type=\"int\" value=\"3\"/>"
182  "<Parameter name=\"aggregation: number of random vectors\" type=\"int\" value=\"10\"/>"
183  "<Parameter name=\"aggregation: number of times to pre or post smooth\" type=\"int\" value=\"10\"/>"
184  "<Parameter name=\"aggregation: penalty parameters\" type=\"Array(double)\" value=\"{12.,-.2,0,0,0} \"/>"
185  "<Parameter name=\"aggregation: distance laplacian directional weights\" type=\"Array(double)\" value=\"{1,1,1}\"/>"
186  "<Parameter name=\"aggregation: distance laplacian algo\" type=\"string\" value=\"default\"/>"
187  "<Parameter name=\"aggregation: distance laplacian metric\" type=\"string\" value=\"unweighted\"/>"
188  "<Parameter name=\"aggregation: classical algo\" type=\"string\" value=\"default\"/>"
189  "<Parameter name=\"aggregation: drop tol\" type=\"double\" value=\"0.0\"/>"
190  "<Parameter name=\"aggregation: use ml scaling of drop tol\" type=\"bool\" value=\"false\"/>"
191  "<Parameter name=\"aggregation: min agg size\" type=\"int\" value=\"2\"/>"
192  "<Parameter name=\"aggregation: max agg size\" type=\"int\" value=\"-1\"/>"
193  "<Parameter name=\"aggregation: compute aggregate qualities\" type=\"bool\" value=\"false\"/>"
194  "<Parameter name=\"aggregation: brick x size\" type=\"int\" value=\"2\"/>"
195  "<Parameter name=\"aggregation: brick y size\" type=\"int\" value=\"2\"/>"
196  "<Parameter name=\"aggregation: brick z size\" type=\"int\" value=\"2\"/>"
197  "<Parameter name=\"aggregation: brick x Dirichlet\" type=\"bool\" value=\"false\"/>"
198  "<Parameter name=\"aggregation: brick y Dirichlet\" type=\"bool\" value=\"false\"/>"
199  "<Parameter name=\"aggregation: brick z Dirichlet\" type=\"bool\" value=\"false\"/>"
200  "<Parameter name=\"aggregation: max selected neighbors\" type=\"int\" value=\"0\"/>"
201  "<Parameter name=\"aggregation: Dirichlet threshold\" type=\"double\" value=\"0.0\"/>"
202  "<Parameter name=\"aggregation: greedy Dirichlet\" type=\"bool\" value=\"false\"/>"
203  "<Parameter name=\"aggregation: deterministic\" type=\"bool\" value=\"false\"/>"
204  "<Parameter name=\"aggregation: coloring algorithm\" type=\"string\" value=\"serial\"/>"
205  "<Parameter name=\"aggregation: coloring: use color graph\" type=\"bool\" value=\"false\"/>"
206  "<Parameter name=\"aggregation: coloring: localize color graph\" type=\"bool\" value=\"true\"/>"
207  "<Parameter name=\"aggregation: enable phase 1\" type=\"bool\" value=\"true\"/>"
208  "<Parameter name=\"aggregation: enable phase 2a\" type=\"bool\" value=\"true\"/>"
209  "<Parameter name=\"aggregation: enable phase 2b\" type=\"bool\" value=\"true\"/>"
210  "<Parameter name=\"aggregation: enable phase 3\" type=\"bool\" value=\"true\"/>"
211  "<Parameter name=\"aggregation: match ML phase1\" type=\"bool\" value=\"false\"/>"
212  "<Parameter name=\"aggregation: match ML phase2a\" type=\"bool\" value=\"false\"/>"
213  "<Parameter name=\"aggregation: match ML phase2b\" type=\"bool\" value=\"false\"/>"
214  "<Parameter name=\"aggregation: phase2a agg factor\" type=\"double\" value=\"0.5\"/>"
215  "<Parameter name=\"aggregation: error on nodes with no on-rank neighbors\" type=\"bool\" value=\"false\"/>"
216  "<Parameter name=\"aggregation: phase3 avoid singletons\" type=\"bool\" value=\"false\"/>"
217  "<Parameter name=\"aggregation: allow empty prolongator columns\" type=\"bool\" value=\"false\"/>"
218  "<Parameter name=\"aggregation: preserve Dirichlet points\" type=\"bool\" value=\"false\"/>"
219  "<Parameter name=\"aggregation: dropping may create Dirichlet\" type=\"bool\" value=\"true\"/>"
220  "<Parameter name=\"aggregation: allow user-specified singletons\" type=\"bool\" value=\"false\"/>"
221  "<Parameter name=\"aggregation: use interface aggregation\" type=\"bool\" value=\"false\"/>"
222  "<Parameter name=\"aggregation: export visualization data\" type=\"bool\" value=\"false\"/>"
223  "<Parameter name=\"aggregation: output filename\" type=\"string\" value=\"\"/>"
224  "<Parameter name=\"aggregation: output file: time step\" type=\"int\" value=\"0\"/>"
225  "<Parameter name=\"aggregation: output file: iter\" type=\"int\" value=\"0\"/>"
226  "<Parameter name=\"aggregation: output file: agg style\" type=\"string\" value=\"Point Cloud\"/>"
227  "<Parameter name=\"aggregation: output file: fine graph edges\" type=\"bool\" value=\"false\"/>"
228  "<Parameter name=\"aggregation: output file: coarse graph edges\" type=\"bool\" value=\"false\"/>"
229  "<Parameter name=\"aggregation: output file: build colormap\" type=\"bool\" value=\"false\"/>"
230  "<Parameter name=\"aggregation: output file: aggregate qualities\" type=\"bool\" value=\"false\"/>"
231  "<Parameter name=\"aggregation: output file: material\" type=\"bool\" value=\"false\"/>"
232  "<ParameterList name=\"aggregation: params\"/>"
233  "<ParameterList name=\"strength-of-connection: params\"/>"
234  "<Parameter name=\"aggregation: mesh layout\" type=\"string\" value=\"Global Lexicographic\"/>"
235  "<Parameter name=\"aggregation: output type\" type=\"string\" value=\"Aggregates\"/>"
236  "<Parameter name=\"aggregation: coarsening rate\" type=\"string\" value=\"{3}\"/>"
237  "<Parameter name=\"aggregation: number of spatial dimensions\" type=\"int\" value=\"3\"/>"
238  "<Parameter name=\"aggregation: coarsening order\" type=\"int\" value=\"0\"/>"
239  "<Parameter name=\"aggregation: pairwise: size\" type=\"int\" value=\"8\"/>"
240  "<Parameter name=\"aggregation: pairwise: tie threshold\" type=\"double\" value=\"1e-6\"/>"
241  "<Parameter name=\"aggregate qualities: check symmetry\" type=\"bool\" value=\"false\"/>"
242  "<Parameter name=\"aggregate qualities: good aggregate threshold\" type=\"double\" value=\"100.0\"/>"
243  "<Parameter name=\"aggregate qualities: file output\" type=\"bool\" value=\"false\"/>"
244  "<Parameter name=\"aggregate qualities: file base\" type=\"string\" value=\"agg_qualities\"/>"
245  "<Parameter name=\"aggregate qualities: algorithm\" type=\"string\" value=\"forward\"/>"
246  "<Parameter name=\"aggregate qualities: zero threshold\" type=\"double\" value=\"1e-12\"/>"
247  "<Parameter name=\"aggregate qualities: percentiles\" type=\"Array(double)\" value=\"{}\"/>"
248  "<Parameter name=\"aggregate qualities: mode\" type=\"string\" value=\"eigenvalue\"/>"
249  "<ParameterList name=\"export data\"/>"
250  "<Parameter name=\"keep data\" type=\"string\" value=\"{}\"/>"
251  "<Parameter name=\"print initial parameters\" type=\"bool\" value=\"true\"/>"
252  "<Parameter name=\"print unused parameters\" type=\"bool\" value=\"true\"/>"
253  "<Parameter name=\"transpose: use implicit\" type=\"bool\" value=\"false\"/>"
254  "<Parameter name=\"transfers: half precision\" type=\"bool\" value=\"false\"/>"
255  "<Parameter name=\"nullspace: calculate rotations\" type=\"bool\" value=\"false\"/>"
256  "<Parameter name=\"nullspace: suppress dimension check\" type=\"bool\" value=\"false\"/>"
257  "<Parameter name=\"restriction: scale nullspace\" type=\"bool\" value=\"false\"/>"
258  "<Parameter name=\"use kokkos refactor\" type=\"bool\" value=\"false\"/>"
259  "<Parameter name=\"synchronize factory timers\" type=\"bool\" value=\"false\"/>"
260  "<Parameter name=\"rap: triple product\" type=\"bool\" value=\"false\"/>"
261  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
262  "<Parameter name=\"toggle: mode\" type=\"string\" value=\"semicoarsen\"/>"
263  "<Parameter name=\"semicoarsen: coarsen rate\" type=\"int\" value=\"3\"/>"
264  "<Parameter name=\"semicoarsen: piecewise constant\" type=\"bool\" value=\"false\"/>"
265  "<Parameter name=\"semicoarsen: piecewise linear\" type=\"bool\" value=\"false\"/>"
266  "<Parameter name=\"semicoarsen: calculate nonsym restriction\" type=\"bool\" value=\"false\"/>"
267  "<Parameter name=\"semicoarsen: number of levels\" type=\"int\" value=\"3\"/>"
268  "<Parameter name=\"linedetection: orientation\" type=\"string\" value=\"vertical\"/>"
269  "<Parameter name=\"linedetection: num layers\" type=\"int\" value=\"-1\"/>"
270  "<Parameter name=\"sa: damping factor\" type=\"double\" value=\"1.33\"/>"
271  "<Parameter name=\"sa: use filtered matrix\" type=\"bool\" value=\"true\"/>"
272  "<Parameter name=\"sa: calculate eigenvalue estimate\" type=\"bool\" value=\"false\"/>"
273  "<Parameter name=\"sa: eigen-analysis type\" type=\"string\" value=\"power-method\"/>"
274  "<Parameter name=\"sa: eigenvalue estimate num iterations\" type=\"int\" value=\"10\"/>"
275  "<Parameter name=\"sa: use rowsumabs diagonal scaling\" type=\"bool\" value=\"false\"/>"
276  "<Parameter name=\"sa: enforce constraints\" type=\"bool\" value=\"false\"/>"
277  "<Parameter name=\"sa: max eigenvalue\" type=\"double\" value=\"-1.0\"/>"
278  "<Parameter name=\"sa: rowsumabs diagonal replacement tolerance\" type=\"double\" value=\"-1.0\"/>"
279  "<Parameter name=\"sa: rowsumabs use automatic diagonal tolerance\" type=\"bool\" value=\"false\"/>"
280  "<Parameter name=\"sa: rowsumabs diagonal replacement value\" type=\"double\" value=\"0.0\"/>"
281  "<Parameter name=\"sa: rowsumabs replace single entry row with zero\" type=\"bool\" value=\"true\"/>"
282  "<Parameter name=\"replicate: npdes\" type=\"int\" value=\"1\"/>"
283  "<Parameter name=\"combine: numBlks\" type=\"int\" value=\"1\"/>"
284  "<Parameter name=\"combine: useMaxLevels\" type=\"bool\" value=\"false\"/>"
285  "<Parameter name=\"interp: build coarse coordinates\" type=\"bool\" value=\"true\"/>"
286  "<ParameterList name=\"transfer: params\"/>"
287  "<Parameter name=\"pcoarsen: element\" type=\"string\" value=\"\"/>"
288  "<Parameter name=\"pcoarsen: schedule\" type=\"string\" value=\"\"/>"
289  "<Parameter name=\"pcoarsen: hi basis\" type=\"string\" value=\"\"/>"
290  "<Parameter name=\"pcoarsen: lo basis\" type=\"string\" value=\"\"/>"
291  "<Parameter name=\"smoother: neighborhood type\" type=\"string\" value=\"\"/>"
292  "<Parameter name=\"filtered matrix: use lumping\" type=\"bool\" value=\"true\"/>"
293  "<Parameter name=\"filtered matrix: lumping choice\" type=\"string\" value=\"diag lumping\"/>"
294  "<Parameter name=\"filtered matrix: use spread lumping\" type=\"bool\" value=\"false\"/>"
295  "<Parameter name=\"filtered matrix: spread lumping diag dom growth factor\" type=\"double\" value=\"1.1\"/>"
296  "<Parameter name=\"filtered matrix: spread lumping diag dom cap\" type=\"double\" value=\"2.0\"/>"
297  "<Parameter name=\"filtered matrix: use root stencil\" type=\"bool\" value=\"false\"/>"
298  "<Parameter name=\"filtered matrix: Dirichlet threshold\" type=\"double\" value=\"-1.0\"/>"
299  "<Parameter name=\"filtered matrix: reuse eigenvalue\" type=\"bool\" value=\"true\"/>"
300  "<Parameter name=\"filtered matrix: reuse graph\" type=\"bool\" value=\"true\"/>"
301  "<Parameter name=\"filtered matrix: count negative diagonals\" type=\"bool\" value=\"false\"/>"
302  "<Parameter name=\"matrix: compute analysis\" type=\"bool\" value=\"false\"/>"
303  "<Parameter name=\"emin: iterative method\" type=\"string\" value=\"cg\"/>"
304  "<Parameter name=\"emin: num iterations\" type=\"int\" value=\"2\"/>"
305  "<Parameter name=\"emin: num reuse iterations\" type=\"int\" value=\"1\"/>"
306  "<Parameter name=\"emin: pattern\" type=\"string\" value=\"AkPtent\"/>"
307  "<Parameter name=\"emin: pattern order\" type=\"int\" value=\"1\"/>"
308  "<Parameter name=\"emin: use filtered matrix\" type=\"bool\" value=\"true\"/>"
309  "<Parameter name=\"tentative: calculate qr\" type=\"bool\" value=\"true\"/>"
310  "<Parameter name=\"tentative: constant column sums\" type=\"bool\" value=\"false\"/>"
311  "<Parameter name=\"tentative: build coarse coordinates\" type=\"bool\" value=\"true\"/>"
312  "<Parameter name=\"repartition: enable\" type=\"bool\" value=\"false\"/>"
313  "<Parameter name=\"repartition: partitioner\" type=\"string\" value=\"zoltan2\"/>"
314  "<ParameterList name=\"repartition: params\"/>"
315  "<Parameter name=\"repartition: start level\" type=\"int\" value=\"2\"/>"
316  "<Parameter name=\"repartition: use map\" type=\"bool\" value=\"false\"/>"
317  "<Parameter name=\"repartition: use subcommunicators in place\" type=\"bool\" value=\"false\"/>"
318  "<Parameter name=\"repartition: node repartition level\" type=\"int\" value=\"-1\"/>"
319  "<Parameter name=\"repartition: node id\" type=\"int\" value=\"-1\"/>"
320  "<Parameter name=\"repartition: min rows per proc\" type=\"int\" value=\"800\"/>"
321  "<Parameter name=\"repartition: target rows per proc\" type=\"int\" value=\"0\"/>"
322  "<Parameter name=\"repartition: min rows per thread\" type=\"int\" value=\"0\"/>"
323  "<Parameter name=\"repartition: target rows per thread\" type=\"int\" value=\"0\"/>"
324  "<Parameter name=\"repartition: max imbalance\" type=\"double\" value=\"1.2\"/>"
325  "<Parameter name=\"repartition: remap parts\" type=\"bool\" value=\"true\"/>"
326  "<Parameter name=\"repartition: remap num values\" type=\"int\" value=\"4\"/>"
327  "<Parameter name=\"repartition: remap accept partition\" type=\"bool\" value=\"true\"/>"
328  "<Parameter name=\"repartition: print partition distribution\" type=\"bool\" value=\"false\"/>"
329  "<Parameter name=\"repartition: rebalance P and R\" type=\"bool\" value=\"false\"/>"
330  "<Parameter name=\"repartition: explicit via new copy rebalance P and R\" type=\"bool\" value=\"false\"/>"
331  "<Parameter name=\"repartition: rebalance Nullspace\" type=\"bool\" value=\"true\"/>"
332  "<Parameter name=\"repartition: use subcommunicators\" type=\"bool\" value=\"true\"/>"
333  "<Parameter name=\"repartition: save importer\" type=\"bool\" value=\"false\"/>"
334  "<Parameter name=\"repartition: put on single proc\" type=\"int\" value=\"0\"/>"
335  "<Parameter name=\"repartition: send type\" type=\"string\" value=\"\"/>"
336  "<Parameter name=\"rap: relative diagonal floor\" type=\"Array(double)\" value=\"{}\"/>"
337  "<Parameter name=\"rap: fix zero diagonals\" type=\"bool\" value=\"false\"/>"
338  "<Parameter name=\"rap: fix zero diagonals threshold\" type=\"double\" value=\"0.\"/>"
339  "<Parameter name=\"rap: fix zero diagonals replacement\" type=\"double\" value=\"1.\"/>"
340  "<Parameter name=\"rap: shift\" type=\"double\" value=\"0.0\"/>"
341  "<Parameter name=\"rap: shift diagonal M\" type=\"bool\" value=\"false\"/>"
342  "<Parameter name=\"rap: shift low storage\" type=\"bool\" value=\"false\"/>"
343  "<Parameter name=\"rap: shift array\" type=\"Array(double)\" value=\"{}\"/>"
344  "<Parameter name=\"rap: cfl array\" type=\"Array(double)\" value=\"{}\"/>"
345  "<Parameter name=\"rap: algorithm\" type=\"string\" value=\"galerkin\"/>"
346  "<ParameterList name=\"matrixmatrix: kernel params\"/>"
347  "<Parameter name=\"matrixmatrix: kernel params:MM_TAFC_OptimizationCoreCount \" type=\"int\" value=\"3000 \"/>"
348  "<Parameter name=\"isMatrixMatrix_TransferAndFillComplete \" type=\"bool\" value=\"false\"/>"
349  "<Parameter name=\"reuse: type\" type=\"string\" value=\"none\"/>"
350  "<Parameter name=\"use external multigrid package\" type=\"string\" value=\"none\"/>"
351  "<ParameterList name=\"amgx:params\"/>"
352  "<ParameterList name=\"kokkos tuning: muelu parameter mapping\"/>"
353  "<Parameter name=\"debug: graph level\" type=\"int\" value=\"-2\"/>"
354  "<Parameter name=\"maxwell1: mode\" type=\"string\" value=\"standard\"/>"
355  "<ParameterList name=\"maxwell1: 11list\"/>"
356  "<ParameterList name=\"maxwell1: 22list\"/>"
357  "<Parameter name=\"maxwell1: dump matrices\" type=\"bool\" value=\"false\"/>"
358  "<Parameter name=\"maxwell1: nodal smoother fix zero diagonal threshold\" type=\"double\" value=\"1e-10\"/>"
359  "<Parameter name=\"refmaxwell: mode\" type=\"string\" value=\"additive\"/>"
360  "<Parameter name=\"refmaxwell: disable addon\" type=\"bool\" value=\"true\"/>"
361  "<ParameterList name=\"refmaxwell: 11list\"/>"
362  "<ParameterList name=\"refmaxwell: 22list\"/>"
363  "<Parameter name=\"refmaxwell: use as preconditioner\" type=\"bool\" value=\"false\"/>"
364  "<Parameter name=\"refmaxwell: dump matrices\" type=\"bool\" value=\"false\"/>"
365  "<Parameter name=\"refmaxwell: subsolves on subcommunicators\" type=\"bool\" value=\"false\"/>"
366  "<Parameter name=\"refmaxwell: enable reuse\" type=\"bool\" value=\"false\"/>"
367  "<Parameter name=\"refmaxwell: skip first (1,1) level\" type=\"bool\" value=\"true\"/>"
368  "<Parameter name=\"refmaxwell: normalize nullspace\" type=\"bool\" value=\"false\"/>"
369 "</ParameterList>"
370 ;
372 ("Poisson-2D",
373 
374  "<ParameterList name=\"MueLu\">"
375 
376  "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>"
377 
378  "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>"
379 
380  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
381 
382  "</ParameterList>"
383  )
384 ("Poisson-2D-complex",
385 
386  "<ParameterList name=\"MueLu\">"
387 
388  "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>"
389 
390  "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>"
391 
392  "<ParameterList name=\"smoother: params\">"
393 
394  "<Parameter name=\"relaxation: type\" type=\"string\" value=\"Symmetric Gauss-Seidel\"/>"
395 
396  "</ParameterList>"
397 
398  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
399 
400  "</ParameterList>"
401  )
402 ("Poisson-3D",
403 
404  "<ParameterList name=\"MueLu\">"
405 
406  "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>"
407 
408  "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>"
409 
410  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
411 
412  "</ParameterList>"
413  )
414 ("Poisson-3D-complex",
415 
416  "<ParameterList name=\"MueLu\">"
417 
418  "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>"
419 
420  "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>"
421 
422  "<ParameterList name=\"smoother: params\">"
423 
424  "<Parameter name=\"relaxation: type\" type=\"string\" value=\"Symmetric Gauss-Seidel\"/>"
425 
426  "</ParameterList>"
427 
428  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
429 
430  "</ParameterList>"
431  )
432 ("Elasticity-2D",
433 
434  "<ParameterList name=\"MueLu\">"
435 
436  "<Parameter name=\"number of equations\" type=\"int\" value=\"2\"/>"
437 
438  "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>"
439 
440  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
441 
442  "</ParameterList>"
443  )
444 ("Elasticity-2D-complex",
445 
446  "<ParameterList name=\"MueLu\">"
447 
448  "<Parameter name=\"number of equations\" type=\"int\" value=\"2\"/>"
449 
450  "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>"
451 
452  "<ParameterList name=\"smoother: params\">"
453 
454  "<Parameter name=\"relaxation: type\" type=\"string\" value=\"Symmetric Gauss-Seidel\"/>"
455 
456  "</ParameterList>"
457 
458  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
459 
460  "</ParameterList>"
461  )
462 ("Elasticity-3D",
463 
464  "<ParameterList name=\"MueLu\">"
465 
466  "<Parameter name=\"number of equations\" type=\"int\" value=\"3\"/>"
467 
468  "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>"
469 
470  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
471 
472  "</ParameterList>"
473  )
474 ("Elasticity-3D-complex",
475 
476  "<ParameterList name=\"MueLu\">"
477 
478  "<Parameter name=\"number of equations\" type=\"int\" value=\"3\"/>"
479 
480  "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>"
481 
482  "<ParameterList name=\"smoother: params\">"
483 
484  "<Parameter name=\"relaxation: type\" type=\"string\" value=\"Symmetric Gauss-Seidel\"/>"
485 
486  "</ParameterList>"
487 
488  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
489 
490  "</ParameterList>"
491  )
492 ("MHD",
493 
494  "<ParameterList name=\"MueLu\">"
495 
496  "<Parameter name=\"smoother: type\" type=\"string\" value=\"SCHWARZ\"/>"
497 
498  "<ParameterList name=\"smoother: params\">"
499 
500  "<Parameter name=\"schwarz: overlap level\" type=\"int\" value=\"1\"/>"
501 
502  "<Parameter name=\"schwarz: combine mode\" type=\"string\" value=\"Zero\"/>"
503 
504  "<Parameter name=\"schwarz: use reordering\" type=\"bool\" value=\"false\"/>"
505 
506  "<Parameter name=\"subdomain solver name\" type=\"string\" value=\"RILUK\"/>"
507 
508  "<ParameterList name=\"subdomain solver parameters\">"
509 
510  "<Parameter name=\"fact: iluk level-of-fill\" type=\"int\" value=\"0\"/>"
511 
512  "<Parameter name=\"fact: absolute threshold\" type=\"double\" value=\"0.\"/>"
513 
514  "<Parameter name=\"fact: relative threshold\" type=\"double\" value=\"1.\"/>"
515 
516  "<Parameter name=\"fact: relax value\" type=\"double\" value=\"0.\"/>"
517 
518  "</ParameterList>"
519 
520  "</ParameterList>"
521 
522  "<Parameter name=\"transpose: use implicit\" type=\"bool\" value=\"true\"/>"
523 
524  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"unsmoothed\"/>"
525 
526  "</ParameterList>"
527  )
528 ("ConvectionDiffusion",
529 
530  "<ParameterList name=\"MueLu\">"
531 
532  "<Parameter name=\"problem: symmetric\" type=\"bool\" value=\"false\"/>"
533 
534  "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>"
535 
536  "<ParameterList name=\"smoother: params\">"
537 
538  "<Parameter name=\"relaxation: type\" type=\"string\" value=\"Gauss-Seidel\"/>"
539 
540  "</ParameterList>"
541 
542  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"pg\"/>"
543 
544  "<Parameter name=\"sa: use filtered matrix\" type=\"bool\" value=\"true\"/>"
545 
546  "<Parameter name=\"emin: use filtered matrix\" type=\"bool\" value=\"true\"/>"
547 
548  "</ParameterList>"
549  )
550 ;
552 
553  ("default values","problem: type")
554 
555  ("ML output","verbosity")
556 
557  ("output filename","output filename")
558 
559  ("PDE equations","number of equations")
560 
561  ("max levels","max levels")
562 
563  ("prec type","cycle type")
564 
565  ("W cycle start level","W cycle start level")
566 
567  ("coarse grid correction scaling factor","coarse grid correction scaling factor")
568 
569  ("fuse prolongation and update","fuse prolongation and update")
570 
571  ("number of vectors","number of vectors")
572 
573  ("problem: symmetric","problem: symmetric")
574 
575  ("xml parameter file","xml parameter file")
576 
577  ("parameterlist: syntax","parameterlist: syntax")
578 
579  ("ML label","hierarchy label")
580 
581  ("matvec params","matvec params")
582 
583  ("half precision","half precision")
584 
585  ("smoother: pre or post","smoother: pre or post")
586 
587  ("smoother: type","smoother: type")
588 
589  ("smoother: pre type","smoother: pre type")
590 
591  ("smoother: post type","smoother: post type")
592 
593  ("smoother: params","smoother: params")
594 
595  ("smoother: pre params","smoother: pre params")
596 
597  ("smoother: post params","smoother: post params")
598 
599  ("smoother: overlap","smoother: overlap")
600 
601  ("smoother: pre overlap","smoother: pre overlap")
602 
603  ("smoother: post overlap","smoother: post overlap")
604 
605  ("max size","coarse: max size")
606 
607  ("coarse: type","coarse: type")
608 
609  ("coarse: params","coarse: params")
610 
611  ("coarse: overlap","coarse: overlap")
612 
613  ("aggregation: backend","aggregation: backend")
614 
615  ("aggregation: type","aggregation: type")
616 
617  ("aggregation: mode","aggregation: mode")
618 
619  ("aggregation: ordering","aggregation: ordering")
620 
621  ("aggregation: phase 1 algorithm","aggregation: phase 1 algorithm")
622 
623  ("aggregation: symmetrize graph after dropping","aggregation: symmetrize graph after dropping")
624 
625  ("aggregation: use blocking","aggregation: use blocking")
626 
627  ("aggregation: drop scheme","aggregation: drop scheme")
628 
629  ("aggregation: strength-of-connection: matrix","aggregation: strength-of-connection: matrix")
630 
631  ("aggregation: strength-of-connection: measure","aggregation: strength-of-connection: measure")
632 
633  ("aggregation: classical scheme","aggregation: classical scheme")
634 
635  ("aggregation: row sum drop tol","aggregation: row sum drop tol")
636 
637  ("aggregation: block diagonal: interleaved blocksize","aggregation: block diagonal: interleaved blocksize")
638 
639  ("aggregation: number of random vectors","aggregation: number of random vectors")
640 
641  ("aggregation: number of times to pre or post smooth","aggregation: number of times to pre or post smooth")
642 
643  ("aggregation: penalty parameters","aggregation: penalty parameters")
644 
645  ("aggregation: distance laplacian directional weights","aggregation: distance laplacian directional weights")
646 
647  ("aggregation: distance laplacian algo","aggregation: distance laplacian algo")
648 
649  ("aggregation: distance laplacian metric","aggregation: distance laplacian metric")
650 
651  ("aggregation: classical algo","aggregation: classical algo")
652 
653  ("aggregation: threshold","aggregation: drop tol")
654 
655  ("aggregation: use ml scaling of drop tol","aggregation: use ml scaling of drop tol")
656 
657  ("aggregation: min agg size","aggregation: min agg size")
658 
659  ("aggregation: max agg size","aggregation: max agg size")
660 
661  ("aggregation: compute aggregate qualities","aggregation: compute aggregate qualities")
662 
663  ("aggregation: brick x size","aggregation: brick x size")
664 
665  ("aggregation: brick y size","aggregation: brick y size")
666 
667  ("aggregation: brick z size","aggregation: brick z size")
668 
669  ("aggregation: brick x Dirichlet","aggregation: brick x Dirichlet")
670 
671  ("aggregation: brick y Dirichlet","aggregation: brick y Dirichlet")
672 
673  ("aggregation: brick z Dirichlet","aggregation: brick z Dirichlet")
674 
675  ("aggregation: max selected neighbors","aggregation: max selected neighbors")
676 
677  ("aggregation: Dirichlet threshold","aggregation: Dirichlet threshold")
678 
679  ("aggregation: greedy Dirichlet","aggregation: greedy Dirichlet")
680 
681  ("aggregation: deterministic","aggregation: deterministic")
682 
683  ("aggregation: coloring algorithm","aggregation: coloring algorithm")
684 
685  ("aggregation: coloring: use color graph","aggregation: coloring: use color graph")
686 
687  ("aggregation: coloring: localize color graph","aggregation: coloring: localize color graph")
688 
689  ("aggregation: enable phase 1","aggregation: enable phase 1")
690 
691  ("aggregation: enable phase 2a","aggregation: enable phase 2a")
692 
693  ("aggregation: enable phase 2b","aggregation: enable phase 2b")
694 
695  ("aggregation: enable phase 3","aggregation: enable phase 3")
696 
697  ("aggregation: match ML phase1","aggregation: match ML phase1")
698 
699  ("aggregation: match ML phase2a","aggregation: match ML phase2a")
700 
701  ("aggregation: match ML phase2b","aggregation: match ML phase2b")
702 
703  ("aggregation: phase2a agg factor","aggregation: phase2a agg factor")
704 
705  ("aggregation: error on nodes with no on-rank neighbors","aggregation: error on nodes with no on-rank neighbors")
706 
707  ("aggregation: phase3 avoid singletons","aggregation: phase3 avoid singletons")
708 
709  ("aggregation: allow empty prolongator columns","aggregation: allow empty prolongator columns")
710 
711  ("aggregation: preserve Dirichlet points","aggregation: preserve Dirichlet points")
712 
713  ("aggregation: dropping may create Dirichlet","aggregation: dropping may create Dirichlet")
714 
715  ("aggregation: allow user-specified singletons","aggregation: allow user-specified singletons")
716 
717  ("aggregation: use interface aggregation","aggregation: use interface aggregation")
718 
719  ("aggregation: export visualization data","aggregation: export visualization data")
720 
721  ("aggregation: output filename","aggregation: output filename")
722 
723  ("aggregation: output file: time step","aggregation: output file: time step")
724 
725  ("aggregation: output file: iter","aggregation: output file: iter")
726 
727  ("aggregation: output file: agg style","aggregation: output file: agg style")
728 
729  ("aggregation: output file: fine graph edges","aggregation: output file: fine graph edges")
730 
731  ("aggregation: output file: coarse graph edges","aggregation: output file: coarse graph edges")
732 
733  ("aggregation: output file: build colormap","aggregation: output file: build colormap")
734 
735  ("aggregation: output file: aggregate qualities","aggregation: output file: aggregate qualities")
736 
737  ("aggregation: output file: material","aggregation: output file: material")
738 
739  ("aggregation: params","aggregation: params")
740 
741  ("strength-of-connection: params","strength-of-connection: params")
742 
743  ("aggregation: mesh layout","aggregation: mesh layout")
744 
745  ("aggregation: output type","aggregation: output type")
746 
747  ("aggregation: coarsening rate","aggregation: coarsening rate")
748 
749  ("aggregation: number of spatial dimensions","aggregation: number of spatial dimensions")
750 
751  ("aggregation: coarsening order","aggregation: coarsening order")
752 
753  ("aggregation: pairwise: size","aggregation: pairwise: size")
754 
755  ("aggregation: pairwise: tie threshold","aggregation: pairwise: tie threshold")
756 
757  ("aggregate qualities: check symmetry","aggregate qualities: check symmetry")
758 
759  ("aggregate qualities: good aggregate threshold","aggregate qualities: good aggregate threshold")
760 
761  ("aggregate qualities: file output","aggregate qualities: file output")
762 
763  ("aggregate qualities: file base","aggregate qualities: file base")
764 
765  ("aggregate qualities: algorithm","aggregate qualities: algorithm")
766 
767  ("aggregate qualities: zero threshold","aggregate qualities: zero threshold")
768 
769  ("aggregate qualities: percentiles","aggregate qualities: percentiles")
770 
771  ("aggregate qualities: mode","aggregate qualities: mode")
772 
773  ("export data","export data")
774 
775  ("keep data","keep data")
776 
777  ("ML print initial list","print initial parameters")
778 
779  ("print unused","print unused parameters")
780 
781  ("transpose: use implicit","transpose: use implicit")
782 
783  ("transfers: half precision","transfers: half precision")
784 
785  ("nullspace: calculate rotations","nullspace: calculate rotations")
786 
787  ("nullspace: suppress dimension check","nullspace: suppress dimension check")
788 
789  ("restriction: scale nullspace","restriction: scale nullspace")
790 
791  ("use kokkos refactor","use kokkos refactor")
792 
793  ("synchronize factory timers","synchronize factory timers")
794 
795  ("rap: triple product","rap: triple product")
796 
797  ("energy minimization: enable","multigrid algorithm")
798 
799  ("toggle: mode","toggle: mode")
800 
801  ("semicoarsen: coarsen rate","semicoarsen: coarsen rate")
802 
803  ("semicoarsen: piecewise constant","semicoarsen: piecewise constant")
804 
805  ("semicoarsen: piecewise linear","semicoarsen: piecewise linear")
806 
807  ("semicoarsen: calculate nonsym restriction","semicoarsen: calculate nonsym restriction")
808 
809  ("semicoarsen: number of levels","semicoarsen: number of levels")
810 
811  ("linedetection: orientation","linedetection: orientation")
812 
813  ("linedetection: num layers","linedetection: num layers")
814 
815  ("aggregation: damping factor","sa: damping factor")
816 
817  ("aggregation aux: enable","sa: use filtered matrix")
818 
819  ("sa: calculate eigenvalue estimate","sa: calculate eigenvalue estimate")
820 
821  ("sa: eigen-analysis type","sa: eigen-analysis type")
822 
823  ("eigen-analysis: iterations","sa: eigenvalue estimate num iterations")
824 
825  ("not supported by ML","sa: use rowsumabs diagonal scaling")
826 
827  ("not supported by ML","sa: enforce constraints")
828 
829  ("not supported by ML","sa: max eigenvalue")
830 
831  ("not supported by ML","sa: rowsumabs diagonal replacement tolerance")
832 
833  ("not supported by ML","sa: rowsumabs use automatic diagonal tolerance")
834 
835  ("not supported by ML","sa: rowsumabs diagonal replacement value")
836 
837  ("not supported by ML","sa: rowsumabs replace single entry row with zero")
838 
839  ("not supported by ML","replicate: npdes")
840 
841  ("not supported by ML","combine: numBlks")
842 
843  ("not supported by ML","combine: useMaxLevels")
844 
845  ("interp: build coarse coordinates","interp: build coarse coordinates")
846 
847  ("transfer: params","transfer: params")
848 
849  ("pcoarsen: element","pcoarsen: element")
850 
851  ("pcoarsen: schedule","pcoarsen: schedule")
852 
853  ("pcoarsen: hi basis","pcoarsen: hi basis")
854 
855  ("pcoarsen: lo basis","pcoarsen: lo basis")
856 
857  ("smoother: neighborhood type","smoother: neighborhood type")
858 
859  ("filtered matrix: use lumping","filtered matrix: use lumping")
860 
861  ("filtered matrix: lumping choice","filtered matrix: lumping choice")
862 
863  ("filtered matrix: use spread lumping","filtered matrix: use spread lumping")
864 
865  ("filtered matrix: spread lumping diag dom growth factor","filtered matrix: spread lumping diag dom growth factor")
866 
867  ("filtered matrix: spread lumping diag dom cap","filtered matrix: spread lumping diag dom cap")
868 
869  ("filtered matrix: use root stencil","filtered matrix: use root stencil")
870 
871  ("filtered matrix: Dirichlet threshold","filtered matrix: Dirichlet threshold")
872 
873  ("filtered matrix: reuse eigenvalue","filtered matrix: reuse eigenvalue")
874 
875  ("filtered matrix: reuse graph","filtered matrix: reuse graph")
876 
877  ("filtered matrix: count negative diagonals","filtered matrix: count negative diagonals")
878 
879  ("matrix: compute analysis","matrix: compute analysis")
880 
881  ("emin: iterative method","emin: iterative method")
882 
883  ("emin: num iterations","emin: num iterations")
884 
885  ("emin: num reuse iterations","emin: num reuse iterations")
886 
887  ("emin: pattern","emin: pattern")
888 
889  ("emin: pattern order","emin: pattern order")
890 
891  ("emin: use filtered matrix","emin: use filtered matrix")
892 
893  ("tentative: calculate qr","tentative: calculate qr")
894 
895  ("tentative: constant column sums","tentative: constant column sums")
896 
897  ("tentative: build coarse coordinates","tentative: build coarse coordinates")
898 
899  ("repartition: enable","repartition: enable")
900 
901  ("repartition: partitioner","repartition: partitioner")
902 
903  ("repartition: params","repartition: params")
904 
905  ("repartition: start level","repartition: start level")
906 
907  ("repartition: use map","repartition: use map")
908 
909  ("repartition: use subcommunicators in place","repartition: use subcommunicators in place")
910 
911  ("repartition: node repartition level","repartition: node repartition level")
912 
913  ("repartition: node id","repartition: node id")
914 
915  ("repartition: min per proc","repartition: min rows per proc")
916 
917  ("repartition: target rows per proc","repartition: target rows per proc")
918 
919  ("repartition: min rows per thread","repartition: min rows per thread")
920 
921  ("repartition: target rows per thread","repartition: target rows per thread")
922 
923  ("repartition: max min ratio","repartition: max imbalance")
924 
925  ("repartition: remap parts","repartition: remap parts")
926 
927  ("repartition: remap num values","repartition: remap num values")
928 
929  ("repartition: remap accept partition","repartition: remap accept partition")
930 
931  ("repartition: print partition distribution","repartition: print partition distribution")
932 
933  ("repartition: rebalance P and R","repartition: rebalance P and R")
934 
935  ("repartition: explicit via new copy rebalance P and R","repartition: explicit via new copy rebalance P and R")
936 
937  ("repartition: rebalance Nullspace","repartition: rebalance Nullspace")
938 
939  ("repartition: use subcommunicators","repartition: use subcommunicators")
940 
941  ("repartition: save importer","repartition: save importer")
942 
943  ("repartition: put on single proc","repartition: put on single proc")
944 
945  ("repartition: send type","repartition: send type")
946 
947  ("rap: relative diagonal floor","rap: relative diagonal floor")
948 
949  ("rap: fix zero diagonals","rap: fix zero diagonals")
950 
951  ("rap: fix zero diagonals threshold","rap: fix zero diagonals threshold")
952 
953  ("rap: fix zero diagonals replacement","rap: fix zero diagonals replacement")
954 
955  ("rap: shift","rap: shift")
956 
957  ("rap: shift diagonal M","rap: shift diagonal M")
958 
959  ("rap: shift low storage","rap: shift low storage")
960 
961  ("rap: shift array","rap: shift array")
962 
963  ("rap: cfl array","rap: cfl array")
964 
965  ("rap: algorithm","rap: algorithm")
966 
967  ("matrixmatrix: kernel params","matrixmatrix: kernel params")
968 
969  ("matrixmatrix: kernel params:MM_TAFC_OptimizationCoreCount ","matrixmatrix: kernel params:MM_TAFC_OptimizationCoreCount ")
970 
971  ("isMatrixMatrix_TransferAndFillComplete ","isMatrixMatrix_TransferAndFillComplete ")
972 
973  ("reuse: type","reuse: type")
974 
975  ("use external multigrid package","use external multigrid package")
976 
977  ("amgx:params","amgx:params")
978 
979  ("kokkos tuning: muelu parameter mapping","kokkos tuning: muelu parameter mapping")
980 
981  ("debug: graph level","debug: graph level")
982 
983  ("maxwell1: mode","maxwell1: mode")
984 
985  ("maxwell1: 11list","maxwell1: 11list")
986 
987  ("maxwell1: 22list","maxwell1: 22list")
988 
989  ("maxwell1: dump matrices","maxwell1: dump matrices")
990 
991  ("maxwell1: nodal smoother fix zero diagonal threshold","maxwell1: nodal smoother fix zero diagonal threshold")
992 
993  ("refmaxwell: mode","refmaxwell: mode")
994 
995  ("refmaxwell: disable addon","refmaxwell: disable addon")
996 
997  ("refmaxwell: 11list","refmaxwell: 11list")
998 
999  ("refmaxwell: 22list","refmaxwell: 22list")
1000 
1001  ("zero starting solution","refmaxwell: use as preconditioner")
1002 
1003  ("refmaxwell: dump matrices","refmaxwell: dump matrices")
1004 
1005  ("refmaxwell: subsolves on subcommunicators","refmaxwell: subsolves on subcommunicators")
1006 
1007  ("refmaxwell: enable reuse","refmaxwell: enable reuse")
1008 
1009  ("refmaxwell: skip first (1,1) level","refmaxwell: skip first (1,1) level")
1010 
1011  ("refmaxwell: normalize nullspace","refmaxwell: normalize nullspace")
1012  ;
1013 
1014 }
1015 
static std::map< std::string, std::string > ML2MueLuLists_
Map of ML parameter strings to corresponding MueLu parametes.
static const std::string stringList_
String equivalent of the masterList_.
static Teuchos::RCP< Teuchos::ParameterList > problemSpecificList_
A ParameterList that holds all valid parameters and their default values for a particular problem typ...
static std::string interpretParameterName(const std::string &name, const std::string &value)
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
static Teuchos::RCP< Teuchos::ParameterList > masterList_
A ParameterList that holds all valid parameters and their default values.
static Teuchos::RCP< Teuchos::ParameterList > GetProblemSpecificList(std::string const &problemType)
Return default parameter settings for the specified problem type.
Exception throws to report errors in the internal logical of the program.
static Teuchos::RCP< const Teuchos::ParameterList > List()
Return a &quot;master&quot; list of all valid parameters and their default values.
Helper class to initialize DefaultProblemTypeLists_ in class MasterList.
static std::map< std::string, std::string > DefaultProblemTypeLists_
Map of string equivalents of the problemSpecificList_. The first entry is the problem type...
static std::string problemType_
The problem type associated with the current problem-specific ParameterList.
bool is_null() const