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 == "problem: symmetric") { ss << "<Parameter name=\"problem: symmetric\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
125  if (name == "aggregation: drop tol") { ss << "<Parameter name=\"aggregation: drop tol\" type=\"double\" value=" << value << "/>"; return ss.str(); }
126  if (name == "print initial parameters") { ss << "<Parameter name=\"print initial parameters\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
127  if (name == "print unused parameters") { ss << "<Parameter name=\"print unused parameters\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
128  if (name == "sa: damping factor") { ss << "<Parameter name=\"sa: damping factor\" type=\"double\" value=" << value << "/>"; return ss.str(); }
129  if (name == "sa: eigenvalue estimate num iterations") { ss << "<Parameter name=\"sa: eigenvalue estimate num iterations\" type=\"int\" value=" << value << "/>"; return ss.str(); }
130  if (name == "repartition: enable") { ss << "<Parameter name=\"repartition: enable\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
131  if (name == "repartition: start level") { ss << "<Parameter name=\"repartition: start level\" type=\"int\" value=" << value << "/>"; return ss.str(); }
132  if (name == "repartition: min rows per proc") { ss << "<Parameter name=\"repartition: min rows per proc\" type=\"int\" value=" << value << "/>"; return ss.str(); }
133  if (name == "repartition: max imbalance") { ss << "<Parameter name=\"repartition: max imbalance\" type=\"double\" value=" << value << "/>"; return ss.str(); }
134  if (name == "use external multigrid package") { ss << "<Parameter name=\"use external multigrid package\" type=\"string\" value=" << value << "/>"; return ss.str(); }
135  return "";
136  }
137 
138  Teuchos::RCP<Teuchos::ParameterList> MasterList::masterList_ = Teuchos::null;
139  Teuchos::RCP<Teuchos::ParameterList> MasterList::problemSpecificList_ = Teuchos::null;
140  std::string MasterList::problemType_ = "unknown";
141  const std::string MasterList::stringList_ =
142 "<ParameterList name=\"MueLu\">"
143  "<Parameter name=\"problem: type\" type=\"string\" value=\"unknown\"/>"
144  "<Parameter name=\"verbosity\" type=\"string\" value=\"high\"/>"
145  "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>"
146  "<Parameter name=\"max levels\" type=\"int\" value=\"10\"/>"
147  "<Parameter name=\"cycle type\" type=\"string\" value=\"V\"/>"
148  "<Parameter name=\"problem: symmetric\" type=\"bool\" value=\"true\"/>"
149  "<Parameter name=\"xml parameter file\" type=\"string\" value=\"\"/>"
150  "<Parameter name=\"parameterlist: syntax\" type=\"string\" value=\"muelu\"/>"
151  "<Parameter name=\"smoother: pre or post\" type=\"string\" value=\"both\"/>"
152  "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>"
153  "<Parameter name=\"smoother: pre type\" type=\"string\" value=\"RELAXATION\"/>"
154  "<Parameter name=\"smoother: post type\" type=\"string\" value=\"RELAXATION\"/>"
155  "<ParameterList name=\"smoother: params\"/>"
156  "<ParameterList name=\"smoother: pre params\"/>"
157  "<ParameterList name=\"smoother: post params\"/>"
158  "<Parameter name=\"smoother: overlap\" type=\"int\" value=\"0\"/>"
159  "<Parameter name=\"smoother: pre overlap\" type=\"int\" value=\"0\"/>"
160  "<Parameter name=\"smoother: post overlap\" type=\"int\" value=\"0\"/>"
161  "<Parameter name=\"coarse: max size\" type=\"int\" value=\"2000\"/>"
162  "<Parameter name=\"coarse: type\" type=\"string\" value=\"SuperLU\"/>"
163  "<ParameterList name=\"coarse: params\"/>"
164  "<Parameter name=\"coarse: overlap\" type=\"int\" value=\"0\"/>"
165  "<Parameter name=\"aggregation: type\" type=\"string\" value=\"uncoupled\"/>"
166  "<Parameter name=\"aggregation: ordering\" type=\"string\" value=\"natural\"/>"
167  "<Parameter name=\"aggregation: drop scheme\" type=\"string\" value=\"classical\"/>"
168  "<Parameter name=\"aggregation: drop tol\" type=\"double\" value=\"0.0\"/>"
169  "<Parameter name=\"aggregation: min agg size\" type=\"int\" value=\"2\"/>"
170  "<Parameter name=\"aggregation: max agg size\" type=\"int\" value=\"-1\"/>"
171  "<Parameter name=\"aggregation: brick x size\" type=\"int\" value=\"2\"/>"
172  "<Parameter name=\"aggregation: brick y size\" type=\"int\" value=\"2\"/>"
173  "<Parameter name=\"aggregation: brick z size\" type=\"int\" value=\"2\"/>"
174  "<Parameter name=\"aggregation: max selected neighbors\" type=\"int\" value=\"0\"/>"
175  "<Parameter name=\"aggregation: Dirichlet threshold\" type=\"double\" value=\"0.0\"/>"
176  "<Parameter name=\"aggregation: enable phase 1\" type=\"bool\" value=\"true\"/>"
177  "<Parameter name=\"aggregation: enable phase 2a\" type=\"bool\" value=\"true\"/>"
178  "<Parameter name=\"aggregation: enable phase 2b\" type=\"bool\" value=\"true\"/>"
179  "<Parameter name=\"aggregation: enable phase 3\" type=\"bool\" value=\"true\"/>"
180  "<Parameter name=\"aggregation: allow empty prolongator columns\" type=\"bool\" value=\"false\"/>"
181  "<Parameter name=\"aggregation: preserve Dirichlet points\" type=\"bool\" value=\"false\"/>"
182  "<Parameter name=\"aggregation: allow user-specified singletons\" type=\"bool\" value=\"false\"/>"
183  "<Parameter name=\"aggregation: export visualization data\" type=\"bool\" value=\"false\"/>"
184  "<Parameter name=\"aggregation: output filename\" type=\"string\" value=\"\"/>"
185  "<Parameter name=\"aggregation: output file: time step\" type=\"int\" value=\"0\"/>"
186  "<Parameter name=\"aggregation: output file: iter\" type=\"int\" value=\"0\"/>"
187  "<Parameter name=\"aggregation: output file: agg style\" type=\"string\" value=\"Point Cloud\"/>"
188  "<Parameter name=\"aggregation: output file: fine graph edges\" type=\"bool\" value=\"false\"/>"
189  "<Parameter name=\"aggregation: output file: coarse graph edges\" type=\"bool\" value=\"false\"/>"
190  "<Parameter name=\"aggregation: output file: build colormap\" type=\"bool\" value=\"false\"/>"
191  "<ParameterList name=\"aggregation: params\"/>"
192  "<ParameterList name=\"strength-of-connection: params\"/>"
193  "<ParameterList name=\"export data\"/>"
194  "<Parameter name=\"print initial parameters\" type=\"bool\" value=\"true\"/>"
195  "<Parameter name=\"print unused parameters\" type=\"bool\" value=\"true\"/>"
196  "<Parameter name=\"transpose: use implicit\" type=\"bool\" value=\"false\"/>"
197  "<Parameter name=\"use kokkos refactor\" type=\"bool\" value=\"false\"/>"
198  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
199  "<Parameter name=\"toggle: mode\" type=\"string\" value=\"semicoarsen\"/>"
200  "<Parameter name=\"semicoarsen: coarsen rate\" type=\"int\" value=\"3\"/>"
201  "<Parameter name=\"semicoarsen: number of levels\" type=\"int\" value=\"3\"/>"
202  "<Parameter name=\"linedetection: orientation\" type=\"string\" value=\"vertical\"/>"
203  "<Parameter name=\"linedetection: num layers\" type=\"int\" value=\"-1\"/>"
204  "<Parameter name=\"sa: damping factor\" type=\"double\" value=\"1.33\"/>"
205  "<Parameter name=\"sa: use filtered matrix\" type=\"bool\" value=\"true\"/>"
206  "<Parameter name=\"sa: calculate eigenvalue estimate\" type=\"bool\" value=\"false\"/>"
207  "<Parameter name=\"sa: eigenvalue estimate num iterations\" type=\"int\" value=\"10\"/>"
208  "<ParameterList name=\"transfer: params\"/>"
209  "<Parameter name=\"filtered matrix: use lumping\" type=\"bool\" value=\"true\"/>"
210  "<Parameter name=\"filtered matrix: reuse eigenvalue\" type=\"bool\" value=\"true\"/>"
211  "<Parameter name=\"filtered matrix: reuse graph\" type=\"bool\" value=\"true\"/>"
212  "<Parameter name=\"emin: iterative method\" type=\"string\" value=\"cg\"/>"
213  "<Parameter name=\"emin: num iterations\" type=\"int\" value=\"2\"/>"
214  "<Parameter name=\"emin: num reuse iterations\" type=\"int\" value=\"1\"/>"
215  "<Parameter name=\"emin: pattern\" type=\"string\" value=\"AkPtent\"/>"
216  "<Parameter name=\"emin: pattern order\" type=\"int\" value=\"1\"/>"
217  "<Parameter name=\"repartition: enable\" type=\"bool\" value=\"false\"/>"
218  "<Parameter name=\"repartition: partitioner\" type=\"string\" value=\"zoltan2\"/>"
219  "<ParameterList name=\"repartition: params\"/>"
220  "<Parameter name=\"repartition: start level\" type=\"int\" value=\"2\"/>"
221  "<Parameter name=\"repartition: min rows per proc\" type=\"int\" value=\"800\"/>"
222  "<Parameter name=\"repartition: max imbalance\" type=\"double\" value=\"1.2\"/>"
223  "<Parameter name=\"repartition: remap parts\" type=\"bool\" value=\"true\"/>"
224  "<Parameter name=\"repartition: remap num values\" type=\"int\" value=\"4\"/>"
225  "<Parameter name=\"repartition: print partition distribution\" type=\"bool\" value=\"false\"/>"
226  "<Parameter name=\"repartition: rebalance P and R\" type=\"bool\" value=\"false\"/>"
227  "<Parameter name=\"repartition: use subcommunicators\" type=\"bool\" value=\"true\"/>"
228  "<Parameter name=\"reuse: type\" type=\"string\" value=\"none\"/>"
229  "<Parameter name=\"use external multigrid package\" type=\"string\" value=\"none\"/>"
230  "<ParameterList name=\"amgx:params\"/>"
231  "<Parameter name=\"debug: graph level\" type=\"int\" value=\"-1\"/>"
232 "</ParameterList>"
233 ;
235 ("Poisson-2D",
236 
237  "<ParameterList name=\"MueLu\">"
238 
239  "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>"
240 
241  "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>"
242 
243  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
244 
245  "</ParameterList>"
246  )
247 ("Poisson-3D",
248 
249  "<ParameterList name=\"MueLu\">"
250 
251  "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>"
252 
253  "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>"
254 
255  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
256 
257  "</ParameterList>"
258  )
259 ("Elasticity-2D",
260 
261  "<ParameterList name=\"MueLu\">"
262 
263  "<Parameter name=\"number of equations\" type=\"int\" value=\"2\"/>"
264 
265  "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>"
266 
267  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
268 
269  "</ParameterList>"
270  )
271 ("Elasticity-3D",
272 
273  "<ParameterList name=\"MueLu\">"
274 
275  "<Parameter name=\"number of equations\" type=\"int\" value=\"3\"/>"
276 
277  "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>"
278 
279  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
280 
281  "</ParameterList>"
282  )
283 ("MHD",
284 
285  "<ParameterList name=\"MueLu\">"
286 
287  "<Parameter name=\"smoother: type\" type=\"string\" value=\"SCHWARZ\"/>"
288 
289  "<ParameterList name=\"smoother: params\">"
290 
291  "<Parameter name=\"schwarz: overlap level\" type=\"int\" value=\"1\"/>"
292 
293  "<Parameter name=\"schwarz: combine mode\" type=\"string\" value=\"Zero\"/>"
294 
295  "<Parameter name=\"schwarz: use reordering\" type=\"bool\" value=\"false\"/>"
296 
297  "<Parameter name=\"subdomain solver name\" type=\"string\" value=\"RILUK\"/>"
298 
299  "<ParameterList name=\"subdomain solver parameters\">"
300 
301  "<Parameter name=\"fact: iluk level-of-fill\" type=\"int\" value=\"0\"/>"
302 
303  "<Parameter name=\"fact: absolute threshold\" type=\"double\" value=\"0.\"/>"
304 
305  "<Parameter name=\"fact: relative threshold\" type=\"double\" value=\"1.\"/>"
306 
307  "<Parameter name=\"fact: relax value\" type=\"double\" value=\"0.\"/>"
308 
309  "</ParameterList>"
310 
311  "</ParameterList>"
312 
313  "<Parameter name=\"transpose: use implicit\" type=\"bool\" value=\"true\"/>"
314 
315  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"unsmoothed\"/>"
316 
317  "</ParameterList>"
318  )
319 ("ConvectionDiffusion",
320 
321  "<ParameterList name=\"MueLu\">"
322 
323  "<Parameter name=\"problem: symmetric\" type=\"bool\" value=\"false\"/>"
324 
325  "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>"
326 
327  "<ParameterList name=\"smoother: params\">"
328 
329  "<Parameter name=\"relaxation: type\" type=\"string\" value=\"Gauss-Seidel\"/>"
330 
331  "</ParameterList>"
332 
333  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"pg\"/>"
334 
335  "<Parameter name=\"sa: use filtered matrix\" type=\"bool\" value=\"true\"/>"
336 
337  "</ParameterList>"
338  )
339 ;
341 
342  ("default values","problem: type")
343 
344  ("ML output","verbosity")
345 
346  ("PDE equations","number of equations")
347 
348  ("max levels","max levels")
349 
350  ("prec type","cycle type")
351 
352  ("problem: symmetric","problem: symmetric")
353 
354  ("xml parameter file","xml parameter file")
355 
356  ("parameterlist: syntax","parameterlist: syntax")
357 
358  ("smoother: pre or post","smoother: pre or post")
359 
360  ("smoother: type","smoother: type")
361 
362  ("smoother: pre type","smoother: pre type")
363 
364  ("smoother: post type","smoother: post type")
365 
366  ("smoother: params","smoother: params")
367 
368  ("smoother: pre params","smoother: pre params")
369 
370  ("smoother: post params","smoother: post params")
371 
372  ("smoother: overlap","smoother: overlap")
373 
374  ("smoother: pre overlap","smoother: pre overlap")
375 
376  ("smoother: post overlap","smoother: post overlap")
377 
378  ("max size","coarse: max size")
379 
380  ("coarse: type","coarse: type")
381 
382  ("coarse: params","coarse: params")
383 
384  ("coarse: overlap","coarse: overlap")
385 
386  ("aggregation: type","aggregation: type")
387 
388  ("aggregation: ordering","aggregation: ordering")
389 
390  ("aggregation: drop scheme","aggregation: drop scheme")
391 
392  ("aggregation: threshold","aggregation: drop tol")
393 
394  ("aggregation: min agg size","aggregation: min agg size")
395 
396  ("aggregation: max agg size","aggregation: max agg size")
397 
398  ("aggregation: brick x size","aggregation: brick x size")
399 
400  ("aggregation: brick y size","aggregation: brick y size")
401 
402  ("aggregation: brick z size","aggregation: brick z size")
403 
404  ("aggregation: max selected neighbors","aggregation: max selected neighbors")
405 
406  ("aggregation: Dirichlet threshold","aggregation: Dirichlet threshold")
407 
408  ("aggregation: enable phase 1","aggregation: enable phase 1")
409 
410  ("aggregation: enable phase 2a","aggregation: enable phase 2a")
411 
412  ("aggregation: enable phase 2b","aggregation: enable phase 2b")
413 
414  ("aggregation: enable phase 3","aggregation: enable phase 3")
415 
416  ("aggregation: allow empty prolongator columns","aggregation: allow empty prolongator columns")
417 
418  ("aggregation: preserve Dirichlet points","aggregation: preserve Dirichlet points")
419 
420  ("aggregation: allow user-specified singletons","aggregation: allow user-specified singletons")
421 
422  ("aggregation: export visualization data","aggregation: export visualization data")
423 
424  ("aggregation: output filename","aggregation: output filename")
425 
426  ("aggregation: output file: time step","aggregation: output file: time step")
427 
428  ("aggregation: output file: iter","aggregation: output file: iter")
429 
430  ("aggregation: output file: agg style","aggregation: output file: agg style")
431 
432  ("aggregation: output file: fine graph edges","aggregation: output file: fine graph edges")
433 
434  ("aggregation: output file: coarse graph edges","aggregation: output file: coarse graph edges")
435 
436  ("aggregation: output file: build colormap","aggregation: output file: build colormap")
437 
438  ("aggregation: params","aggregation: params")
439 
440  ("strength-of-connection: params","strength-of-connection: params")
441 
442  ("export data","export data")
443 
444  ("ML print initial list","print initial parameters")
445 
446  ("print unused","print unused parameters")
447 
448  ("transpose: use implicit","transpose: use implicit")
449 
450  ("use kokkos refactor","use kokkos refactor")
451 
452  ("energy minimization: enable","multigrid algorithm")
453 
454  ("toggle: mode","toggle: mode")
455 
456  ("semicoarsen: coarsen rate","semicoarsen: coarsen rate")
457 
458  ("semicoarsen: number of levels","semicoarsen: number of levels")
459 
460  ("linedetection: orientation","linedetection: orientation")
461 
462  ("linedetection: num layers","linedetection: num layers")
463 
464  ("aggregation: damping factor","sa: damping factor")
465 
466  ("sa: use filtered matrix","sa: use filtered matrix")
467 
468  ("sa: calculate eigenvalue estimate","sa: calculate eigenvalue estimate")
469 
470  ("eigen-analysis: iterations","sa: eigenvalue estimate num iterations")
471 
472  ("transfer: params","transfer: params")
473 
474  ("filtered matrix: use lumping","filtered matrix: use lumping")
475 
476  ("filtered matrix: reuse eigenvalue","filtered matrix: reuse eigenvalue")
477 
478  ("filtered matrix: reuse graph","filtered matrix: reuse graph")
479 
480  ("emin: iterative method","emin: iterative method")
481 
482  ("emin: num iterations","emin: num iterations")
483 
484  ("emin: num reuse iterations","emin: num reuse iterations")
485 
486  ("emin: pattern","emin: pattern")
487 
488  ("emin: pattern order","emin: pattern order")
489 
490  ("repartition: enable","repartition: enable")
491 
492  ("repartition: partitioner","repartition: partitioner")
493 
494  ("repartition: params","repartition: params")
495 
496  ("repartition: start level","repartition: start level")
497 
498  ("repartition: min per proc","repartition: min rows per proc")
499 
500  ("repartition: max min ratio","repartition: max imbalance")
501 
502  ("repartition: remap parts","repartition: remap parts")
503 
504  ("repartition: remap num values","repartition: remap num values")
505 
506  ("repartition: print partition distribution","repartition: print partition distribution")
507 
508  ("repartition: rebalance P and R","repartition: rebalance P and R")
509 
510  ("repartition: use subcommunicators","repartition: use subcommunicators")
511 
512  ("reuse: type","reuse: type")
513 
514  ("use external multigrid package","use external multigrid package")
515 
516  ("amgx:params","amgx:params")
517 
518  ("debug: graph level","debug: graph level")
519  ;
520 
521 }
522 
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.