MueLu  Version of the Day
MueLu_MasterList.cpp
Go to the documentation of this file.
1 // @HEADER
2 //
3 // ***********************************************************************
4 //
5 // MueLu: A package for multigrid based preconditioning
6 // Copyright 2012 Sandia Corporation
7 //
8 // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9 // the U.S. Government retains certain rights in this software.
10 //
11 // Redistribution and use in source and binary forms, with or without
12 // modification, are permitted provided that the following conditions are
13 // met:
14 //
15 // 1. Redistributions of source code must retain the above copyright
16 // notice, this list of conditions and the following disclaimer.
17 //
18 // 2. Redistributions in binary form must reproduce the above copyright
19 // notice, this list of conditions and the following disclaimer in the
20 // documentation and/or other materials provided with the distribution.
21 //
22 // 3. Neither the name of the Corporation nor the names of the
23 // contributors may be used to endorse or promote products derived from
24 // this software without specific prior written permission.
25 //
26 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 //
38 // Questions? Contact
39 // Jonathan Hu (jhu@sandia.gov)
40 // Andrey Prokopenko (aprokop@sandia.gov)
41 // Ray Tuminaro (rstumin@sandia.gov)
42 //
43 // ***********************************************************************
44 //
45 // @HEADER
46 #include <Teuchos_XMLParameterListCoreHelpers.hpp>
47 
48 #include "MueLu_Exceptions.hpp"
49 #include "MueLu_MasterList.hpp"
50 
51 namespace MueLu {
52 
53  Teuchos::RCP<const Teuchos::ParameterList> MasterList::List() {
54  if (masterList_.is_null()) {
55  masterList_ = Teuchos::getParametersFromXmlString(stringList_);
56  }
57 
58  return masterList_;
59  }
60 
61  Teuchos::RCP<Teuchos::ParameterList> MasterList::GetProblemSpecificList(std::string const & problemType) {
62 
63  if ( (problemType != problemType_) || problemSpecificList_.is_null() ) {
64  if (DefaultProblemTypeLists_.find(problemType) != DefaultProblemTypeLists_.end()) {
65  problemType_ = problemType;
66  problemSpecificList_ = Teuchos::getParametersFromXmlString(DefaultProblemTypeLists_[problemType]);
67  } else {
68  //TODO provide valid problem types
69  TEUCHOS_TEST_FOR_EXCEPTION(true, MueLu::Exceptions::RuntimeError, "Invalid problem type " << problemType << ".");
70  }
71  }
72  return problemSpecificList_;
73  }
74 
75  std::string MasterList::interpretParameterName(const std::string& name, const std::string& value) {
76 
77  // used to concatenate the return string
78  std::stringstream ss;
79 
80  // put in short cuts here!
81 
82  if (name == "verbosity") {
83  std::string verb = "none";
84  if (value == "\"0\"") verb = "none";
85  if (value == "\"1\"" || value == "\"2\"" || value == "\"3\"") verb = "low";
86  if (value == "\"4\"" || value == "\"5\"" || value == "\"6\"") verb = "medium";
87  if (value == "\"7\"" || value == "\"8\"") verb = "high";
88  if (value == "\"9\"") verb = "extreme";
89  if (value == "\"10\"") verb = "test";
90  verb = "\"" + verb + "\"";
91  ss << "<Parameter name=\"verbosity\" type=\"string\" value=" << verb << "/>";
92  return ss.str();
93  }
94 
95  if (name == "cycle type") {
96  std::stringstream temp1; temp1 << "\"" << "MGV" << "\"";
97  std::stringstream temp2; temp2 << "\"" << "MGV" << "\"";
98  if (value == temp1.str() ) { ss << "<Parameter name=\"cycle type\" type=\"string\" value=\"V\"/>"; return ss.str(); }
99  else if (value == temp2.str()) { ss << "<Parameter name=\"cycle type\" type=\"string\" value=\"W\"/>"; return ss.str(); }
100  else TEUCHOS_TEST_FOR_EXCEPTION(true, MueLu::Exceptions::RuntimeError, "MasterList::interpretParameterName, Line " << __LINE__ << ". "
101  << "The parameter " << value << " is not supported by MueLu.");
102  return ss.str();
103  }
104 
105  // energy minimization is enabled
106  if (name == "multigrid algorithm") {
107  std::stringstream temp; temp << "\"" << "1" << "\"";
108  if (value == temp.str() ) { ss << "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"pg\"/>"; return ss.str(); }
109  }
110 
111  if (name == "repartition: enable") {
112  std::stringstream temp1; temp1 << "\"" << "1" << "\"";
113  if (value == temp1.str()) {
114  RCP<Teuchos::FancyOStream> out = Teuchos::fancyOStream(Teuchos::rcpFromRef(std::cout));
115  *out << "WARNING: repartitioning in MueLu is different to MLs. Please refer to the MueLu users Manual for more information." << std::endl;
116  }
117  }
118 
119  // put in auto-generated code here
120 
121 
122  if (name == "number of equations") { ss << "<Parameter name=\"number of equations\" type=\"int\" value=" << value << "/>"; return ss.str(); }
123  if (name == "max levels") { ss << "<Parameter name=\"max levels\" type=\"int\" value=" << value << "/>"; return ss.str(); }
124  if (name == "coarse grid correction scaling factor") { ss << "<Parameter name=\"coarse grid correction scaling factor\" type=\"double\" value=" << value << "/>"; return ss.str(); }
125  if (name == "problem: symmetric") { ss << "<Parameter name=\"problem: symmetric\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
126  if (name == "aggregation: drop tol") { ss << "<Parameter name=\"aggregation: drop tol\" type=\"double\" value=" << value << "/>"; return ss.str(); }
127  if (name == "print initial parameters") { ss << "<Parameter name=\"print initial parameters\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
128  if (name == "print unused parameters") { ss << "<Parameter name=\"print unused parameters\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
129  if (name == "sa: damping factor") { ss << "<Parameter name=\"sa: damping factor\" type=\"double\" value=" << value << "/>"; return ss.str(); }
130  if (name == "sa: eigenvalue estimate num iterations") { ss << "<Parameter name=\"sa: eigenvalue estimate num iterations\" type=\"int\" value=" << value << "/>"; return ss.str(); }
131  if (name == "pcoarsen: element") { ss << "<Parameter name=\"pcoarsen: element\" type=\"string\" value=" << value << "/>"; return ss.str(); }
132  if (name == "pcoarsen: schedule") { ss << "<Parameter name=\"pcoarsen: schedule\" type=\"string\" value=" << value << "/>"; return ss.str(); }
133  if (name == "pcoarsen: hi basis") { ss << "<Parameter name=\"pcoarsen: hi basis\" type=\"string\" value=" << value << "/>"; return ss.str(); }
134  if (name == "pcoarsen: lo basis") { ss << "<Parameter name=\"pcoarsen: lo basis\" type=\"string\" value=" << value << "/>"; return ss.str(); }
135  if (name == "smoother: neighborhood type") { ss << "<Parameter name=\"smoother: neighborhood type\" type=\"string\" value=" << value << "/>"; return ss.str(); }
136  if (name == "tentative: calculate qr") { ss << "<Parameter name=\"tentative: calculate qr\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
137  if (name == "repartition: enable") { ss << "<Parameter name=\"repartition: enable\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
138  if (name == "repartition: start level") { ss << "<Parameter name=\"repartition: start level\" type=\"int\" value=" << value << "/>"; return ss.str(); }
139  if (name == "repartition: min rows per proc") { ss << "<Parameter name=\"repartition: min rows per proc\" type=\"int\" value=" << value << "/>"; return ss.str(); }
140  if (name == "repartition: max imbalance") { ss << "<Parameter name=\"repartition: max imbalance\" type=\"double\" value=" << value << "/>"; return ss.str(); }
141  if (name == "use external multigrid package") { ss << "<Parameter name=\"use external multigrid package\" type=\"string\" value=" << value << "/>"; return ss.str(); }
142  return "";
143  }
144 
145  Teuchos::RCP<Teuchos::ParameterList> MasterList::masterList_ = Teuchos::null;
146  Teuchos::RCP<Teuchos::ParameterList> MasterList::problemSpecificList_ = Teuchos::null;
147  std::string MasterList::problemType_ = "unknown";
148  const std::string MasterList::stringList_ =
149 "<ParameterList name=\"MueLu\">"
150  "<Parameter name=\"problem: type\" type=\"string\" value=\"unknown\"/>"
151  "<Parameter name=\"verbosity\" type=\"string\" value=\"high\"/>"
152  "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>"
153  "<Parameter name=\"max levels\" type=\"int\" value=\"10\"/>"
154  "<Parameter name=\"cycle type\" type=\"string\" value=\"V\"/>"
155  "<Parameter name=\"coarse grid correction scaling factor\" type=\"double\" value=\"1.0\"/>"
156  "<Parameter name=\"problem: symmetric\" type=\"bool\" value=\"true\"/>"
157  "<Parameter name=\"xml parameter file\" type=\"string\" value=\"\"/>"
158  "<Parameter name=\"parameterlist: syntax\" type=\"string\" value=\"muelu\"/>"
159  "<Parameter name=\"smoother: pre or post\" type=\"string\" value=\"both\"/>"
160  "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>"
161  "<Parameter name=\"smoother: pre type\" type=\"string\" value=\"RELAXATION\"/>"
162  "<Parameter name=\"smoother: post type\" type=\"string\" value=\"RELAXATION\"/>"
163  "<ParameterList name=\"smoother: params\"/>"
164  "<ParameterList name=\"smoother: pre params\"/>"
165  "<ParameterList name=\"smoother: post params\"/>"
166  "<Parameter name=\"smoother: overlap\" type=\"int\" value=\"0\"/>"
167  "<Parameter name=\"smoother: pre overlap\" type=\"int\" value=\"0\"/>"
168  "<Parameter name=\"smoother: post overlap\" type=\"int\" value=\"0\"/>"
169  "<Parameter name=\"coarse: max size\" type=\"int\" value=\"2000\"/>"
170  "<Parameter name=\"coarse: type\" type=\"string\" value=\"SuperLU\"/>"
171  "<ParameterList name=\"coarse: params\"/>"
172  "<Parameter name=\"coarse: overlap\" type=\"int\" value=\"0\"/>"
173  "<Parameter name=\"aggregation: type\" type=\"string\" value=\"uncoupled\"/>"
174  "<Parameter name=\"aggregation: ordering\" type=\"string\" value=\"natural\"/>"
175  "<Parameter name=\"aggregation: drop scheme\" type=\"string\" value=\"classical\"/>"
176  "<Parameter name=\"aggregation: drop tol\" type=\"double\" value=\"0.0\"/>"
177  "<Parameter name=\"aggregation: min agg size\" type=\"int\" value=\"2\"/>"
178  "<Parameter name=\"aggregation: max agg size\" type=\"int\" value=\"-1\"/>"
179  "<Parameter name=\"aggregation: brick x size\" type=\"int\" value=\"2\"/>"
180  "<Parameter name=\"aggregation: brick y size\" type=\"int\" value=\"2\"/>"
181  "<Parameter name=\"aggregation: brick z size\" type=\"int\" value=\"2\"/>"
182  "<Parameter name=\"aggregation: max selected neighbors\" type=\"int\" value=\"0\"/>"
183  "<Parameter name=\"aggregation: Dirichlet threshold\" type=\"double\" value=\"0.0\"/>"
184  "<Parameter name=\"aggregation: enable phase 1\" type=\"bool\" value=\"true\"/>"
185  "<Parameter name=\"aggregation: enable phase 2a\" type=\"bool\" value=\"true\"/>"
186  "<Parameter name=\"aggregation: enable phase 2b\" type=\"bool\" value=\"true\"/>"
187  "<Parameter name=\"aggregation: enable phase 3\" type=\"bool\" value=\"true\"/>"
188  "<Parameter name=\"aggregation: error on nodes with no on-rank neighbors\" type=\"bool\" value=\"false\"/>"
189  "<Parameter name=\"aggregation: allow empty prolongator columns\" type=\"bool\" value=\"false\"/>"
190  "<Parameter name=\"aggregation: preserve Dirichlet points\" type=\"bool\" value=\"false\"/>"
191  "<Parameter name=\"aggregation: allow user-specified singletons\" type=\"bool\" value=\"false\"/>"
192  "<Parameter name=\"aggregation: export visualization data\" type=\"bool\" value=\"false\"/>"
193  "<Parameter name=\"aggregation: output filename\" type=\"string\" value=\"\"/>"
194  "<Parameter name=\"aggregation: output file: time step\" type=\"int\" value=\"0\"/>"
195  "<Parameter name=\"aggregation: output file: iter\" type=\"int\" value=\"0\"/>"
196  "<Parameter name=\"aggregation: output file: agg style\" type=\"string\" value=\"Point Cloud\"/>"
197  "<Parameter name=\"aggregation: output file: fine graph edges\" type=\"bool\" value=\"false\"/>"
198  "<Parameter name=\"aggregation: output file: coarse graph edges\" type=\"bool\" value=\"false\"/>"
199  "<Parameter name=\"aggregation: output file: build colormap\" type=\"bool\" value=\"false\"/>"
200  "<ParameterList name=\"aggregation: params\"/>"
201  "<ParameterList name=\"strength-of-connection: params\"/>"
202  "<ParameterList name=\"export data\"/>"
203  "<Parameter name=\"print initial parameters\" type=\"bool\" value=\"true\"/>"
204  "<Parameter name=\"print unused parameters\" type=\"bool\" value=\"true\"/>"
205  "<Parameter name=\"transpose: use implicit\" type=\"bool\" value=\"false\"/>"
206  "<Parameter name=\"use kokkos refactor\" type=\"bool\" value=\"false\"/>"
207  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
208  "<Parameter name=\"toggle: mode\" type=\"string\" value=\"semicoarsen\"/>"
209  "<Parameter name=\"semicoarsen: coarsen rate\" type=\"int\" value=\"3\"/>"
210  "<Parameter name=\"semicoarsen: number of levels\" type=\"int\" value=\"3\"/>"
211  "<Parameter name=\"linedetection: orientation\" type=\"string\" value=\"vertical\"/>"
212  "<Parameter name=\"linedetection: num layers\" type=\"int\" value=\"-1\"/>"
213  "<Parameter name=\"sa: damping factor\" type=\"double\" value=\"1.33\"/>"
214  "<Parameter name=\"sa: use filtered matrix\" type=\"bool\" value=\"true\"/>"
215  "<Parameter name=\"sa: calculate eigenvalue estimate\" type=\"bool\" value=\"false\"/>"
216  "<Parameter name=\"sa: eigenvalue estimate num iterations\" type=\"int\" value=\"10\"/>"
217  "<ParameterList name=\"transfer: params\"/>"
218  "<Parameter name=\"pcoarsen: element\" type=\"string\" value=\"\"/>"
219  "<Parameter name=\"pcoarsen: schedule\" type=\"string\" value=\"\"/>"
220  "<Parameter name=\"pcoarsen: hi basis\" type=\"string\" value=\"\"/>"
221  "<Parameter name=\"pcoarsen: lo basis\" type=\"string\" value=\"\"/>"
222  "<Parameter name=\"smoother: neighborhood type\" type=\"string\" value=\"\"/>"
223  "<Parameter name=\"filtered matrix: use lumping\" type=\"bool\" value=\"true\"/>"
224  "<Parameter name=\"filtered matrix: reuse eigenvalue\" type=\"bool\" value=\"true\"/>"
225  "<Parameter name=\"filtered matrix: reuse graph\" type=\"bool\" value=\"true\"/>"
226  "<Parameter name=\"emin: iterative method\" type=\"string\" value=\"cg\"/>"
227  "<Parameter name=\"emin: num iterations\" type=\"int\" value=\"2\"/>"
228  "<Parameter name=\"emin: num reuse iterations\" type=\"int\" value=\"1\"/>"
229  "<Parameter name=\"emin: pattern\" type=\"string\" value=\"AkPtent\"/>"
230  "<Parameter name=\"emin: pattern order\" type=\"int\" value=\"1\"/>"
231  "<Parameter name=\"tentative: calculate qr\" type=\"bool\" value=\"true\"/>"
232  "<Parameter name=\"repartition: enable\" type=\"bool\" value=\"false\"/>"
233  "<Parameter name=\"repartition: partitioner\" type=\"string\" value=\"zoltan2\"/>"
234  "<ParameterList name=\"repartition: params\"/>"
235  "<Parameter name=\"repartition: start level\" type=\"int\" value=\"2\"/>"
236  "<Parameter name=\"repartition: min rows per proc\" type=\"int\" value=\"800\"/>"
237  "<Parameter name=\"repartition: max imbalance\" type=\"double\" value=\"1.2\"/>"
238  "<Parameter name=\"repartition: remap parts\" type=\"bool\" value=\"true\"/>"
239  "<Parameter name=\"repartition: remap num values\" type=\"int\" value=\"4\"/>"
240  "<Parameter name=\"repartition: print partition distribution\" type=\"bool\" value=\"false\"/>"
241  "<Parameter name=\"repartition: rebalance P and R\" type=\"bool\" value=\"false\"/>"
242  "<Parameter name=\"repartition: use subcommunicators\" type=\"bool\" value=\"true\"/>"
243  "<Parameter name=\"rap: fix zero diagonals\" type=\"bool\" value=\"false\"/>"
244  "<ParameterList name=\"matrixmatrix: kernel params\"/>"
245  "<Parameter name=\"reuse: type\" type=\"string\" value=\"none\"/>"
246  "<Parameter name=\"use external multigrid package\" type=\"string\" value=\"none\"/>"
247  "<ParameterList name=\"amgx:params\"/>"
248  "<Parameter name=\"debug: graph level\" type=\"int\" value=\"-1\"/>"
249 "</ParameterList>"
250 ;
252 ("Poisson-2D",
253 
254  "<ParameterList name=\"MueLu\">"
255 
256  "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>"
257 
258  "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>"
259 
260  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
261 
262  "</ParameterList>"
263  )
264 ("Poisson-3D",
265 
266  "<ParameterList name=\"MueLu\">"
267 
268  "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>"
269 
270  "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>"
271 
272  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
273 
274  "</ParameterList>"
275  )
276 ("Elasticity-2D",
277 
278  "<ParameterList name=\"MueLu\">"
279 
280  "<Parameter name=\"number of equations\" type=\"int\" value=\"2\"/>"
281 
282  "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>"
283 
284  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
285 
286  "</ParameterList>"
287  )
288 ("Elasticity-3D",
289 
290  "<ParameterList name=\"MueLu\">"
291 
292  "<Parameter name=\"number of equations\" type=\"int\" value=\"3\"/>"
293 
294  "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>"
295 
296  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
297 
298  "</ParameterList>"
299  )
300 ("MHD",
301 
302  "<ParameterList name=\"MueLu\">"
303 
304  "<Parameter name=\"smoother: type\" type=\"string\" value=\"SCHWARZ\"/>"
305 
306  "<ParameterList name=\"smoother: params\">"
307 
308  "<Parameter name=\"schwarz: overlap level\" type=\"int\" value=\"1\"/>"
309 
310  "<Parameter name=\"schwarz: combine mode\" type=\"string\" value=\"Zero\"/>"
311 
312  "<Parameter name=\"schwarz: use reordering\" type=\"bool\" value=\"false\"/>"
313 
314  "<Parameter name=\"subdomain solver name\" type=\"string\" value=\"RILUK\"/>"
315 
316  "<ParameterList name=\"subdomain solver parameters\">"
317 
318  "<Parameter name=\"fact: iluk level-of-fill\" type=\"int\" value=\"0\"/>"
319 
320  "<Parameter name=\"fact: absolute threshold\" type=\"double\" value=\"0.\"/>"
321 
322  "<Parameter name=\"fact: relative threshold\" type=\"double\" value=\"1.\"/>"
323 
324  "<Parameter name=\"fact: relax value\" type=\"double\" value=\"0.\"/>"
325 
326  "</ParameterList>"
327 
328  "</ParameterList>"
329 
330  "<Parameter name=\"transpose: use implicit\" type=\"bool\" value=\"true\"/>"
331 
332  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"unsmoothed\"/>"
333 
334  "</ParameterList>"
335  )
336 ("ConvectionDiffusion",
337 
338  "<ParameterList name=\"MueLu\">"
339 
340  "<Parameter name=\"problem: symmetric\" type=\"bool\" value=\"false\"/>"
341 
342  "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>"
343 
344  "<ParameterList name=\"smoother: params\">"
345 
346  "<Parameter name=\"relaxation: type\" type=\"string\" value=\"Gauss-Seidel\"/>"
347 
348  "</ParameterList>"
349 
350  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"pg\"/>"
351 
352  "<Parameter name=\"sa: use filtered matrix\" type=\"bool\" value=\"true\"/>"
353 
354  "</ParameterList>"
355  )
356 ;
358 
359  ("default values","problem: type")
360 
361  ("ML output","verbosity")
362 
363  ("PDE equations","number of equations")
364 
365  ("max levels","max levels")
366 
367  ("prec type","cycle type")
368 
369  ("coarse grid correction scaling factor","coarse grid correction scaling factor")
370 
371  ("problem: symmetric","problem: symmetric")
372 
373  ("xml parameter file","xml parameter file")
374 
375  ("parameterlist: syntax","parameterlist: syntax")
376 
377  ("smoother: pre or post","smoother: pre or post")
378 
379  ("smoother: type","smoother: type")
380 
381  ("smoother: pre type","smoother: pre type")
382 
383  ("smoother: post type","smoother: post type")
384 
385  ("smoother: params","smoother: params")
386 
387  ("smoother: pre params","smoother: pre params")
388 
389  ("smoother: post params","smoother: post params")
390 
391  ("smoother: overlap","smoother: overlap")
392 
393  ("smoother: pre overlap","smoother: pre overlap")
394 
395  ("smoother: post overlap","smoother: post overlap")
396 
397  ("max size","coarse: max size")
398 
399  ("coarse: type","coarse: type")
400 
401  ("coarse: params","coarse: params")
402 
403  ("coarse: overlap","coarse: overlap")
404 
405  ("aggregation: type","aggregation: type")
406 
407  ("aggregation: ordering","aggregation: ordering")
408 
409  ("aggregation: drop scheme","aggregation: drop scheme")
410 
411  ("aggregation: threshold","aggregation: drop tol")
412 
413  ("aggregation: min agg size","aggregation: min agg size")
414 
415  ("aggregation: max agg size","aggregation: max agg size")
416 
417  ("aggregation: brick x size","aggregation: brick x size")
418 
419  ("aggregation: brick y size","aggregation: brick y size")
420 
421  ("aggregation: brick z size","aggregation: brick z size")
422 
423  ("aggregation: max selected neighbors","aggregation: max selected neighbors")
424 
425  ("aggregation: Dirichlet threshold","aggregation: Dirichlet threshold")
426 
427  ("aggregation: enable phase 1","aggregation: enable phase 1")
428 
429  ("aggregation: enable phase 2a","aggregation: enable phase 2a")
430 
431  ("aggregation: enable phase 2b","aggregation: enable phase 2b")
432 
433  ("aggregation: enable phase 3","aggregation: enable phase 3")
434 
435  ("aggregation: error on nodes with no on-rank neighbors","aggregation: error on nodes with no on-rank neighbors")
436 
437  ("aggregation: allow empty prolongator columns","aggregation: allow empty prolongator columns")
438 
439  ("aggregation: preserve Dirichlet points","aggregation: preserve Dirichlet points")
440 
441  ("aggregation: allow user-specified singletons","aggregation: allow user-specified singletons")
442 
443  ("aggregation: export visualization data","aggregation: export visualization data")
444 
445  ("aggregation: output filename","aggregation: output filename")
446 
447  ("aggregation: output file: time step","aggregation: output file: time step")
448 
449  ("aggregation: output file: iter","aggregation: output file: iter")
450 
451  ("aggregation: output file: agg style","aggregation: output file: agg style")
452 
453  ("aggregation: output file: fine graph edges","aggregation: output file: fine graph edges")
454 
455  ("aggregation: output file: coarse graph edges","aggregation: output file: coarse graph edges")
456 
457  ("aggregation: output file: build colormap","aggregation: output file: build colormap")
458 
459  ("aggregation: params","aggregation: params")
460 
461  ("strength-of-connection: params","strength-of-connection: params")
462 
463  ("export data","export data")
464 
465  ("ML print initial list","print initial parameters")
466 
467  ("print unused","print unused parameters")
468 
469  ("transpose: use implicit","transpose: use implicit")
470 
471  ("use kokkos refactor","use kokkos refactor")
472 
473  ("energy minimization: enable","multigrid algorithm")
474 
475  ("toggle: mode","toggle: mode")
476 
477  ("semicoarsen: coarsen rate","semicoarsen: coarsen rate")
478 
479  ("semicoarsen: number of levels","semicoarsen: number of levels")
480 
481  ("linedetection: orientation","linedetection: orientation")
482 
483  ("linedetection: num layers","linedetection: num layers")
484 
485  ("aggregation: damping factor","sa: damping factor")
486 
487  ("sa: use filtered matrix","sa: use filtered matrix")
488 
489  ("sa: calculate eigenvalue estimate","sa: calculate eigenvalue estimate")
490 
491  ("eigen-analysis: iterations","sa: eigenvalue estimate num iterations")
492 
493  ("transfer: params","transfer: params")
494 
495  ("pcoarsen: element","pcoarsen: element")
496 
497  ("pcoarsen: schedule","pcoarsen: schedule")
498 
499  ("pcoarsen: hi basis","pcoarsen: hi basis")
500 
501  ("pcoarsen: lo basis","pcoarsen: lo basis")
502 
503  ("smoother: neighborhood type","smoother: neighborhood type")
504 
505  ("filtered matrix: use lumping","filtered matrix: use lumping")
506 
507  ("filtered matrix: reuse eigenvalue","filtered matrix: reuse eigenvalue")
508 
509  ("filtered matrix: reuse graph","filtered matrix: reuse graph")
510 
511  ("emin: iterative method","emin: iterative method")
512 
513  ("emin: num iterations","emin: num iterations")
514 
515  ("emin: num reuse iterations","emin: num reuse iterations")
516 
517  ("emin: pattern","emin: pattern")
518 
519  ("emin: pattern order","emin: pattern order")
520 
521  ("tentative: calculate qr","tentative: calculate qr")
522 
523  ("repartition: enable","repartition: enable")
524 
525  ("repartition: partitioner","repartition: partitioner")
526 
527  ("repartition: params","repartition: params")
528 
529  ("repartition: start level","repartition: start level")
530 
531  ("repartition: min per proc","repartition: min rows per proc")
532 
533  ("repartition: max min ratio","repartition: max imbalance")
534 
535  ("repartition: remap parts","repartition: remap parts")
536 
537  ("repartition: remap num values","repartition: remap num values")
538 
539  ("repartition: print partition distribution","repartition: print partition distribution")
540 
541  ("repartition: rebalance P and R","repartition: rebalance P and R")
542 
543  ("repartition: use subcommunicators","repartition: use subcommunicators")
544 
545  ("rap: fix zero diagonals","rap: fix zero diagonals")
546 
547  ("matrixmatrix: kernel params","matrixmatrix: kernel params")
548 
549  ("reuse: type","reuse: type")
550 
551  ("use external multigrid package","use external multigrid package")
552 
553  ("amgx:params","amgx:params")
554 
555  ("debug: graph level","debug: graph level")
556  ;
557 
558 }
559 
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)
Namespace for MueLu classes and methods.
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 "master" 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.