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\"/>"; }
99  else if (value == temp2.str()) { ss << "<Parameter name=\"cycle type\" type=\"string\" value=\"W\"/>"; }
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 == "output filename") { ss << "<Parameter name=\"output filename\" type=\"string\" value=" << value << "/>"; return ss.str(); }
123  if (name == "number of equations") { ss << "<Parameter name=\"number of equations\" type=\"int\" value=" << value << "/>"; return ss.str(); }
124  if (name == "max levels") { ss << "<Parameter name=\"max levels\" type=\"int\" value=" << value << "/>"; return ss.str(); }
125  if (name == "W cycle start level") { ss << "<Parameter name=\"W cycle start level\" type=\"int\" value=" << value << "/>"; return ss.str(); }
126  if (name == "coarse grid correction scaling factor") { ss << "<Parameter name=\"coarse grid correction scaling factor\" type=\"double\" value=" << value << "/>"; return ss.str(); }
127  if (name == "fuse prolongation and update") { ss << "<Parameter name=\"fuse prolongation and update\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
128  if (name == "number of vectors") { ss << "<Parameter name=\"number of vectors\" type=\"int\" value=" << value << "/>"; return ss.str(); }
129  if (name == "problem: symmetric") { ss << "<Parameter name=\"problem: symmetric\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
130  if (name == "hierarchy label") { ss << "<Parameter name=\"hierarchy label\" type=\"string\" value=" << value << "/>"; return ss.str(); }
131  if (name == "aggregation: drop tol") { ss << "<Parameter name=\"aggregation: drop tol\" type=\"double\" value=" << value << "/>"; return ss.str(); }
132  if (name == "print initial parameters") { ss << "<Parameter name=\"print initial parameters\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
133  if (name == "print unused parameters") { ss << "<Parameter name=\"print unused parameters\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
134  if (name == "sa: damping factor") { ss << "<Parameter name=\"sa: damping factor\" type=\"double\" value=" << value << "/>"; return ss.str(); }
135  if (name == "sa: eigenvalue estimate num iterations") { ss << "<Parameter name=\"sa: eigenvalue estimate num iterations\" type=\"int\" value=" << value << "/>"; return ss.str(); }
136  if (name == "sa: use rowsumabs diagonal scaling") { ss << "<Parameter name=\"sa: use rowsumabs diagonal scaling\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
137  if (name == "sa: enforce constraints") { ss << "<Parameter name=\"sa: enforce constraints\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
138  if (name == "sa: max eigenvalue") { ss << "<Parameter name=\"sa: max eigenvalue\" type=\"double\" value=" << value << "/>"; return ss.str(); }
139  if (name == "sa: rowsumabs diagonal replacement tolerance") { ss << "<Parameter name=\"sa: rowsumabs diagonal replacement tolerance\" type=\"double\" value=" << value << "/>"; return ss.str(); }
140  if (name == "sa: rowsumabs diagonal replacement value") { ss << "<Parameter name=\"sa: rowsumabs diagonal replacement value\" type=\"double\" value=" << value << "/>"; return ss.str(); }
141  if (name == "pcoarsen: element") { ss << "<Parameter name=\"pcoarsen: element\" type=\"string\" value=" << value << "/>"; return ss.str(); }
142  if (name == "pcoarsen: schedule") { ss << "<Parameter name=\"pcoarsen: schedule\" type=\"string\" value=" << value << "/>"; return ss.str(); }
143  if (name == "pcoarsen: hi basis") { ss << "<Parameter name=\"pcoarsen: hi basis\" type=\"string\" value=" << value << "/>"; return ss.str(); }
144  if (name == "pcoarsen: lo basis") { ss << "<Parameter name=\"pcoarsen: lo basis\" type=\"string\" value=" << value << "/>"; return ss.str(); }
145  if (name == "smoother: neighborhood type") { ss << "<Parameter name=\"smoother: neighborhood type\" type=\"string\" value=" << value << "/>"; return ss.str(); }
146  if (name == "tentative: calculate qr") { ss << "<Parameter name=\"tentative: calculate qr\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
147  if (name == "tentative: constant column sums") { ss << "<Parameter name=\"tentative: constant column sums\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
148  if (name == "repartition: enable") { ss << "<Parameter name=\"repartition: enable\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
149  if (name == "repartition: start level") { ss << "<Parameter name=\"repartition: start level\" type=\"int\" value=" << value << "/>"; return ss.str(); }
150  if (name == "repartition: use map") { ss << "<Parameter name=\"repartition: use map\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
151  if (name == "repartition: node repartition level") { ss << "<Parameter name=\"repartition: node repartition level\" type=\"int\" value=" << value << "/>"; return ss.str(); }
152  if (name == "repartition: node id") { ss << "<Parameter name=\"repartition: node id\" type=\"int\" value=" << value << "/>"; return ss.str(); }
153  if (name == "repartition: min rows per proc") { ss << "<Parameter name=\"repartition: min rows per proc\" type=\"int\" value=" << value << "/>"; return ss.str(); }
154  if (name == "repartition: max imbalance") { ss << "<Parameter name=\"repartition: max imbalance\" type=\"double\" value=" << value << "/>"; return ss.str(); }
155  if (name == "use external multigrid package") { ss << "<Parameter name=\"use external multigrid package\" type=\"string\" value=" << value << "/>"; return ss.str(); }
156  if (name == "refmaxwell: mode") { ss << "<Parameter name=\"refmaxwell: mode\" type=\"string\" value=" << value << "/>"; return ss.str(); }
157  if (name == "refmaxwell: disable addon") { ss << "<Parameter name=\"refmaxwell: disable addon\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
158  if (name == "refmaxwell: use as preconditioner") { ss << "<Parameter name=\"refmaxwell: use as preconditioner\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
159  if (name == "refmaxwell: dump matrices") { ss << "<Parameter name=\"refmaxwell: dump matrices\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
160  if (name == "refmaxwell: subsolves on subcommunicators") { ss << "<Parameter name=\"refmaxwell: subsolves on subcommunicators\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
161  if (name == "refmaxwell: enable reuse") { ss << "<Parameter name=\"refmaxwell: enable reuse\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
162  if (name == "refmaxwell: skip first (1,1) level") { ss << "<Parameter name=\"refmaxwell: skip first (1,1) level\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
163  if (name == "refmaxwell: normalize nullspace") { ss << "<Parameter name=\"refmaxwell: normalize nullspace\" type=\"bool\" value=" << value << "/>"; return ss.str(); }
164  return "";
165  }
166 
167  Teuchos::RCP<Teuchos::ParameterList> MasterList::masterList_ = Teuchos::null;
168  Teuchos::RCP<Teuchos::ParameterList> MasterList::problemSpecificList_ = Teuchos::null;
169  std::string MasterList::problemType_ = "unknown";
170  const std::string MasterList::stringList_ =
171 "<ParameterList name=\"MueLu\">"
172  "<Parameter name=\"problem: type\" type=\"string\" value=\"unknown\"/>"
173  "<Parameter name=\"verbosity\" type=\"string\" value=\"high\"/>"
174  "<Parameter name=\"output filename\" type=\"string\" value=\"\"/>"
175  "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>"
176  "<Parameter name=\"max levels\" type=\"int\" value=\"10\"/>"
177  "<Parameter name=\"cycle type\" type=\"string\" value=\"V\"/>"
178  "<Parameter name=\"W cycle start level\" type=\"int\" value=\"0\"/>"
179  "<Parameter name=\"coarse grid correction scaling factor\" type=\"double\" value=\"1.0\"/>"
180  "<Parameter name=\"fuse prolongation and update\" type=\"bool\" value=\"false\"/>"
181  "<Parameter name=\"number of vectors\" type=\"int\" value=\"1\"/>"
182  "<Parameter name=\"problem: symmetric\" type=\"bool\" value=\"true\"/>"
183  "<Parameter name=\"xml parameter file\" type=\"string\" value=\"\"/>"
184  "<Parameter name=\"parameterlist: syntax\" type=\"string\" value=\"muelu\"/>"
185  "<Parameter name=\"hierarchy label\" type=\"string\" value=\"\"/>"
186  "<ParameterList name=\"matvec params\"/>"
187  "<Parameter name=\"half precision\" type=\"bool\" value=\"false\"/>"
188  "<Parameter name=\"smoother: pre or post\" type=\"string\" value=\"both\"/>"
189  "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>"
190  "<Parameter name=\"smoother: pre type\" type=\"string\" value=\"RELAXATION\"/>"
191  "<Parameter name=\"smoother: post type\" type=\"string\" value=\"RELAXATION\"/>"
192  "<ParameterList name=\"smoother: params\"/>"
193  "<ParameterList name=\"smoother: pre params\"/>"
194  "<ParameterList name=\"smoother: post params\"/>"
195  "<Parameter name=\"smoother: overlap\" type=\"int\" value=\"0\"/>"
196  "<Parameter name=\"smoother: pre overlap\" type=\"int\" value=\"0\"/>"
197  "<Parameter name=\"smoother: post overlap\" type=\"int\" value=\"0\"/>"
198  "<Parameter name=\"coarse: max size\" type=\"int\" value=\"2000\"/>"
199  "<Parameter name=\"coarse: type\" type=\"string\" value=\"SuperLU\"/>"
200  "<ParameterList name=\"coarse: params\"/>"
201  "<Parameter name=\"coarse: overlap\" type=\"int\" value=\"0\"/>"
202  "<Parameter name=\"aggregation: type\" type=\"string\" value=\"uncoupled\"/>"
203  "<Parameter name=\"aggregation: mode\" type=\"string\" value=\"uncoupled\"/>"
204  "<Parameter name=\"aggregation: ordering\" type=\"string\" value=\"natural\"/>"
205  "<Parameter name=\"aggregation: drop scheme\" type=\"string\" value=\"classical\"/>"
206  "<Parameter name=\"aggregation: classical scheme\" type=\"string\" value=\"direct\"/>"
207  "<Parameter name=\"aggregation: row sum drop tol\" type=\"double\" value=\"-1.0\"/>"
208  "<Parameter name=\"aggregation: block diagonal: interleaved blocksize\" type=\"int\" value=\"3\"/>"
209  "<Parameter name=\"aggregation: number of random vectors\" type=\"int\" value=\"10\"/>"
210  "<Parameter name=\"aggregation: number of times to pre or post smooth\" type=\"int\" value=\"10\"/>"
211  "<Parameter name=\"aggregation: penalty parameters\" type=\"Array(double)\" value=\"{12.,-.2,0,0,0} \"/>"
212  "<Parameter name=\"aggregation: distance laplacian directional weights\" type=\"Array(double)\" value=\"{1,1,1}\"/>"
213  "<Parameter name=\"aggregation: distance laplacian algo\" type=\"string\" value=\"default\"/>"
214  "<Parameter name=\"aggregation: classical algo\" type=\"string\" value=\"default\"/>"
215  "<Parameter name=\"aggregation: drop tol\" type=\"double\" value=\"0.0\"/>"
216  "<Parameter name=\"aggregation: min agg size\" type=\"int\" value=\"2\"/>"
217  "<Parameter name=\"aggregation: max agg size\" type=\"int\" value=\"-1\"/>"
218  "<Parameter name=\"aggregation: compute aggregate qualities\" type=\"bool\" value=\"false\"/>"
219  "<Parameter name=\"aggregation: brick x size\" type=\"int\" value=\"2\"/>"
220  "<Parameter name=\"aggregation: brick y size\" type=\"int\" value=\"2\"/>"
221  "<Parameter name=\"aggregation: brick z size\" type=\"int\" value=\"2\"/>"
222  "<Parameter name=\"aggregation: brick x Dirichlet\" type=\"bool\" value=\"false\"/>"
223  "<Parameter name=\"aggregation: brick y Dirichlet\" type=\"bool\" value=\"false\"/>"
224  "<Parameter name=\"aggregation: brick z Dirichlet\" type=\"bool\" value=\"false\"/>"
225  "<Parameter name=\"aggregation: max selected neighbors\" type=\"int\" value=\"0\"/>"
226  "<Parameter name=\"aggregation: Dirichlet threshold\" type=\"double\" value=\"0.0\"/>"
227  "<Parameter name=\"aggregation: greedy Dirichlet\" type=\"bool\" value=\"false\"/>"
228  "<Parameter name=\"aggregation: deterministic\" type=\"bool\" value=\"false\"/>"
229  "<Parameter name=\"aggregation: coloring algorithm\" type=\"string\" value=\"serial\"/>"
230  "<Parameter name=\"aggregation: coloring: use color graph\" type=\"bool\" value=\"false\"/>"
231  "<Parameter name=\"aggregation: coloring: localize color graph\" type=\"bool\" value=\"true\"/>"
232  "<Parameter name=\"aggregation: enable phase 1\" type=\"bool\" value=\"true\"/>"
233  "<Parameter name=\"aggregation: enable phase 2a\" type=\"bool\" value=\"true\"/>"
234  "<Parameter name=\"aggregation: enable phase 2b\" type=\"bool\" value=\"true\"/>"
235  "<Parameter name=\"aggregation: enable phase 3\" type=\"bool\" value=\"true\"/>"
236  "<Parameter name=\"aggregation: phase2a include root\" type=\"bool\" value=\"true\"/>"
237  "<Parameter name=\"aggregation: phase2a agg factor\" type=\"double\" value=\"0.5\"/>"
238  "<Parameter name=\"aggregation: error on nodes with no on-rank neighbors\" type=\"bool\" value=\"false\"/>"
239  "<Parameter name=\"aggregation: phase3 avoid singletons\" type=\"bool\" value=\"false\"/>"
240  "<Parameter name=\"aggregation: allow empty prolongator columns\" type=\"bool\" value=\"false\"/>"
241  "<Parameter name=\"aggregation: preserve Dirichlet points\" type=\"bool\" value=\"false\"/>"
242  "<Parameter name=\"aggregation: allow user-specified singletons\" type=\"bool\" value=\"false\"/>"
243  "<Parameter name=\"aggregation: use interface aggregation\" type=\"bool\" value=\"false\"/>"
244  "<Parameter name=\"aggregation: export visualization data\" type=\"bool\" value=\"false\"/>"
245  "<Parameter name=\"aggregation: output filename\" type=\"string\" value=\"\"/>"
246  "<Parameter name=\"aggregation: output file: time step\" type=\"int\" value=\"0\"/>"
247  "<Parameter name=\"aggregation: output file: iter\" type=\"int\" value=\"0\"/>"
248  "<Parameter name=\"aggregation: output file: agg style\" type=\"string\" value=\"Point Cloud\"/>"
249  "<Parameter name=\"aggregation: output file: fine graph edges\" type=\"bool\" value=\"false\"/>"
250  "<Parameter name=\"aggregation: output file: coarse graph edges\" type=\"bool\" value=\"false\"/>"
251  "<Parameter name=\"aggregation: output file: build colormap\" type=\"bool\" value=\"false\"/>"
252  "<ParameterList name=\"aggregation: params\"/>"
253  "<ParameterList name=\"strength-of-connection: params\"/>"
254  "<Parameter name=\"aggregation: mesh layout\" type=\"string\" value=\"Global Lexicographic\"/>"
255  "<Parameter name=\"aggregation: output type\" type=\"string\" value=\"Aggregates\"/>"
256  "<Parameter name=\"aggregation: coarsening rate\" type=\"string\" value=\"{3}\"/>"
257  "<Parameter name=\"aggregation: number of spatial dimensions\" type=\"int\" value=\"3\"/>"
258  "<Parameter name=\"aggregation: coarsening order\" type=\"int\" value=\"0\"/>"
259  "<Parameter name=\"aggregation: pairwise: size\" type=\"int\" value=\"8\"/>"
260  "<Parameter name=\"aggregation: pairwise: tie threshold\" type=\"double\" value=\"1e-6\"/>"
261  "<Parameter name=\"aggregate qualities: check symmetry\" type=\"bool\" value=\"false\"/>"
262  "<Parameter name=\"aggregate qualities: good aggregate threshold\" type=\"double\" value=\"100.0\"/>"
263  "<Parameter name=\"aggregate qualities: file output\" type=\"bool\" value=\"false\"/>"
264  "<Parameter name=\"aggregate qualities: file base\" type=\"string\" value=\"agg_qualities\"/>"
265  "<Parameter name=\"aggregate qualities: algorithm\" type=\"string\" value=\"forward\"/>"
266  "<Parameter name=\"aggregate qualities: zero threshold\" type=\"double\" value=\"1e-12\"/>"
267  "<Parameter name=\"aggregate qualities: percentiles\" type=\"Array(double)\" value=\"{}\"/>"
268  "<Parameter name=\"aggregate qualities: mode\" type=\"string\" value=\"eigenvalue\"/>"
269  "<ParameterList name=\"export data\"/>"
270  "<Parameter name=\"print initial parameters\" type=\"bool\" value=\"true\"/>"
271  "<Parameter name=\"print unused parameters\" type=\"bool\" value=\"true\"/>"
272  "<Parameter name=\"transpose: use implicit\" type=\"bool\" value=\"false\"/>"
273  "<Parameter name=\"restriction: scale nullspace\" type=\"bool\" value=\"false\"/>"
274  "<Parameter name=\"use kokkos refactor\" type=\"bool\" value=\"false\"/>"
275  "<Parameter name=\"synchronize factory timers\" type=\"bool\" value=\"false\"/>"
276  "<Parameter name=\"rap: triple product\" type=\"bool\" value=\"false\"/>"
277  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
278  "<Parameter name=\"toggle: mode\" type=\"string\" value=\"semicoarsen\"/>"
279  "<Parameter name=\"semicoarsen: coarsen rate\" type=\"int\" value=\"3\"/>"
280  "<Parameter name=\"semicoarsen: piecewise constant\" type=\"bool\" value=\"false\"/>"
281  "<Parameter name=\"semicoarsen: number of levels\" type=\"int\" value=\"3\"/>"
282  "<Parameter name=\"linedetection: orientation\" type=\"string\" value=\"vertical\"/>"
283  "<Parameter name=\"linedetection: num layers\" type=\"int\" value=\"-1\"/>"
284  "<Parameter name=\"sa: damping factor\" type=\"double\" value=\"1.33\"/>"
285  "<Parameter name=\"sa: use filtered matrix\" type=\"bool\" value=\"true\"/>"
286  "<Parameter name=\"sa: calculate eigenvalue estimate\" type=\"bool\" value=\"false\"/>"
287  "<Parameter name=\"sa: eigenvalue estimate num iterations\" type=\"int\" value=\"10\"/>"
288  "<Parameter name=\"sa: use rowsumabs diagonal scaling\" type=\"bool\" value=\"false\"/>"
289  "<Parameter name=\"sa: enforce constraints\" type=\"bool\" value=\"false\"/>"
290  "<Parameter name=\"sa: max eigenvalue\" type=\"double\" value=\"-1.0\"/>"
291  "<Parameter name=\"sa: rowsumabs diagonal replacement tolerance\" type=\"double\" value=\"-1.0\"/>"
292  "<Parameter name=\"sa: rowsumabs diagonal replacement value\" type=\"double\" value=\"0.0\"/>"
293  "<Parameter name=\"interp: build coarse coordinates\" type=\"bool\" value=\"true\"/>"
294  "<ParameterList name=\"transfer: params\"/>"
295  "<Parameter name=\"pcoarsen: element\" type=\"string\" value=\"\"/>"
296  "<Parameter name=\"pcoarsen: schedule\" type=\"string\" value=\"\"/>"
297  "<Parameter name=\"pcoarsen: hi basis\" type=\"string\" value=\"\"/>"
298  "<Parameter name=\"pcoarsen: lo basis\" type=\"string\" value=\"\"/>"
299  "<Parameter name=\"smoother: neighborhood type\" type=\"string\" value=\"\"/>"
300  "<Parameter name=\"filtered matrix: use lumping\" type=\"bool\" value=\"true\"/>"
301  "<Parameter name=\"filtered matrix: use spread lumping\" type=\"bool\" value=\"false\"/>"
302  "<Parameter name=\"filtered matrix: spread lumping diag dom growth factor\" type=\"double\" value=\"1.1\"/>"
303  "<Parameter name=\"filtered matrix: spread lumping diag dom cap\" type=\"double\" value=\"2.0\"/>"
304  "<Parameter name=\"filtered matrix: use root stencil\" type=\"bool\" value=\"false\"/>"
305  "<Parameter name=\"filtered matrix: Dirichlet threshold\" type=\"double\" value=\"-1.0\"/>"
306  "<Parameter name=\"filtered matrix: reuse eigenvalue\" type=\"bool\" value=\"true\"/>"
307  "<Parameter name=\"filtered matrix: reuse graph\" type=\"bool\" value=\"true\"/>"
308  "<Parameter name=\"emin: iterative method\" type=\"string\" value=\"cg\"/>"
309  "<Parameter name=\"emin: num iterations\" type=\"int\" value=\"2\"/>"
310  "<Parameter name=\"emin: num reuse iterations\" type=\"int\" value=\"1\"/>"
311  "<Parameter name=\"emin: pattern\" type=\"string\" value=\"AkPtent\"/>"
312  "<Parameter name=\"emin: pattern order\" type=\"int\" value=\"1\"/>"
313  "<Parameter name=\"emin: use filtered matrix\" type=\"bool\" value=\"true\"/>"
314  "<Parameter name=\"tentative: calculate qr\" type=\"bool\" value=\"true\"/>"
315  "<Parameter name=\"tentative: constant column sums\" type=\"bool\" value=\"false\"/>"
316  "<Parameter name=\"tentative: build coarse coordinates\" type=\"bool\" value=\"true\"/>"
317  "<Parameter name=\"repartition: enable\" type=\"bool\" value=\"false\"/>"
318  "<Parameter name=\"repartition: partitioner\" type=\"string\" value=\"zoltan2\"/>"
319  "<ParameterList name=\"repartition: params\"/>"
320  "<Parameter name=\"repartition: start level\" type=\"int\" value=\"2\"/>"
321  "<Parameter name=\"repartition: use map\" type=\"bool\" value=\"false\"/>"
322  "<Parameter name=\"repartition: node repartition level\" type=\"int\" value=\"-1\"/>"
323  "<Parameter name=\"repartition: node id\" type=\"int\" value=\"-1\"/>"
324  "<Parameter name=\"repartition: min rows per proc\" type=\"int\" value=\"800\"/>"
325  "<Parameter name=\"repartition: target rows per proc\" type=\"int\" value=\"0\"/>"
326  "<Parameter name=\"repartition: min rows per thread\" type=\"int\" value=\"0\"/>"
327  "<Parameter name=\"repartition: target rows per thread\" type=\"int\" value=\"0\"/>"
328  "<Parameter name=\"repartition: max imbalance\" type=\"double\" value=\"1.2\"/>"
329  "<Parameter name=\"repartition: remap parts\" type=\"bool\" value=\"true\"/>"
330  "<Parameter name=\"repartition: remap num values\" type=\"int\" value=\"4\"/>"
331  "<Parameter name=\"repartition: remap accept partition\" type=\"bool\" value=\"true\"/>"
332  "<Parameter name=\"repartition: print partition distribution\" type=\"bool\" value=\"false\"/>"
333  "<Parameter name=\"repartition: rebalance P and R\" type=\"bool\" value=\"false\"/>"
334  "<Parameter name=\"repartition: rebalance Nullspace\" type=\"bool\" value=\"true\"/>"
335  "<Parameter name=\"repartition: use subcommunicators\" type=\"bool\" value=\"true\"/>"
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  "<Parameter name=\"debug: graph level\" type=\"int\" value=\"-2\"/>"
353  "<Parameter name=\"maxwell1: mode\" type=\"string\" value=\"standard\"/>"
354  "<ParameterList name=\"maxwell1: 11list\"/>"
355  "<ParameterList name=\"maxwell1: 22list\"/>"
356  "<Parameter name=\"refmaxwell: mode\" type=\"string\" value=\"additive\"/>"
357  "<Parameter name=\"refmaxwell: disable addon\" type=\"bool\" value=\"true\"/>"
358  "<ParameterList name=\"refmaxwell: 11list\"/>"
359  "<ParameterList name=\"refmaxwell: 22list\"/>"
360  "<Parameter name=\"refmaxwell: use as preconditioner\" type=\"bool\" value=\"false\"/>"
361  "<Parameter name=\"refmaxwell: dump matrices\" type=\"bool\" value=\"false\"/>"
362  "<Parameter name=\"refmaxwell: subsolves on subcommunicators\" type=\"bool\" value=\"false\"/>"
363  "<Parameter name=\"refmaxwell: enable reuse\" type=\"bool\" value=\"false\"/>"
364  "<Parameter name=\"refmaxwell: skip first (1,1) level\" type=\"bool\" value=\"true\"/>"
365  "<Parameter name=\"refmaxwell: normalize nullspace\" type=\"bool\" value=\"false\"/>"
366 "</ParameterList>"
367 ;
369 ("Poisson-2D",
370 
371  "<ParameterList name=\"MueLu\">"
372 
373  "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>"
374 
375  "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>"
376 
377  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
378 
379  "</ParameterList>"
380  )
381 ("Poisson-2D-complex",
382 
383  "<ParameterList name=\"MueLu\">"
384 
385  "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>"
386 
387  "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>"
388 
389  "<ParameterList name=\"smoother: params\">"
390 
391  "<Parameter name=\"relaxation: type\" type=\"string\" value=\"Symmetric Gauss-Seidel\"/>"
392 
393  "</ParameterList>"
394 
395  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
396 
397  "</ParameterList>"
398  )
399 ("Poisson-3D",
400 
401  "<ParameterList name=\"MueLu\">"
402 
403  "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>"
404 
405  "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>"
406 
407  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
408 
409  "</ParameterList>"
410  )
411 ("Poisson-3D-complex",
412 
413  "<ParameterList name=\"MueLu\">"
414 
415  "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>"
416 
417  "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>"
418 
419  "<ParameterList name=\"smoother: params\">"
420 
421  "<Parameter name=\"relaxation: type\" type=\"string\" value=\"Symmetric Gauss-Seidel\"/>"
422 
423  "</ParameterList>"
424 
425  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
426 
427  "</ParameterList>"
428  )
429 ("Elasticity-2D",
430 
431  "<ParameterList name=\"MueLu\">"
432 
433  "<Parameter name=\"number of equations\" type=\"int\" value=\"2\"/>"
434 
435  "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>"
436 
437  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
438 
439  "</ParameterList>"
440  )
441 ("Elasticity-2D-complex",
442 
443  "<ParameterList name=\"MueLu\">"
444 
445  "<Parameter name=\"number of equations\" type=\"int\" value=\"2\"/>"
446 
447  "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>"
448 
449  "<ParameterList name=\"smoother: params\">"
450 
451  "<Parameter name=\"relaxation: type\" type=\"string\" value=\"Symmetric Gauss-Seidel\"/>"
452 
453  "</ParameterList>"
454 
455  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
456 
457  "</ParameterList>"
458  )
459 ("Elasticity-3D",
460 
461  "<ParameterList name=\"MueLu\">"
462 
463  "<Parameter name=\"number of equations\" type=\"int\" value=\"3\"/>"
464 
465  "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>"
466 
467  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
468 
469  "</ParameterList>"
470  )
471 ("Elasticity-3D-complex",
472 
473  "<ParameterList name=\"MueLu\">"
474 
475  "<Parameter name=\"number of equations\" type=\"int\" value=\"3\"/>"
476 
477  "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>"
478 
479  "<ParameterList name=\"smoother: params\">"
480 
481  "<Parameter name=\"relaxation: type\" type=\"string\" value=\"Symmetric Gauss-Seidel\"/>"
482 
483  "</ParameterList>"
484 
485  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>"
486 
487  "</ParameterList>"
488  )
489 ("MHD",
490 
491  "<ParameterList name=\"MueLu\">"
492 
493  "<Parameter name=\"smoother: type\" type=\"string\" value=\"SCHWARZ\"/>"
494 
495  "<ParameterList name=\"smoother: params\">"
496 
497  "<Parameter name=\"schwarz: overlap level\" type=\"int\" value=\"1\"/>"
498 
499  "<Parameter name=\"schwarz: combine mode\" type=\"string\" value=\"Zero\"/>"
500 
501  "<Parameter name=\"schwarz: use reordering\" type=\"bool\" value=\"false\"/>"
502 
503  "<Parameter name=\"subdomain solver name\" type=\"string\" value=\"RILUK\"/>"
504 
505  "<ParameterList name=\"subdomain solver parameters\">"
506 
507  "<Parameter name=\"fact: iluk level-of-fill\" type=\"int\" value=\"0\"/>"
508 
509  "<Parameter name=\"fact: absolute threshold\" type=\"double\" value=\"0.\"/>"
510 
511  "<Parameter name=\"fact: relative threshold\" type=\"double\" value=\"1.\"/>"
512 
513  "<Parameter name=\"fact: relax value\" type=\"double\" value=\"0.\"/>"
514 
515  "</ParameterList>"
516 
517  "</ParameterList>"
518 
519  "<Parameter name=\"transpose: use implicit\" type=\"bool\" value=\"true\"/>"
520 
521  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"unsmoothed\"/>"
522 
523  "</ParameterList>"
524  )
525 ("ConvectionDiffusion",
526 
527  "<ParameterList name=\"MueLu\">"
528 
529  "<Parameter name=\"problem: symmetric\" type=\"bool\" value=\"false\"/>"
530 
531  "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>"
532 
533  "<ParameterList name=\"smoother: params\">"
534 
535  "<Parameter name=\"relaxation: type\" type=\"string\" value=\"Gauss-Seidel\"/>"
536 
537  "</ParameterList>"
538 
539  "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"pg\"/>"
540 
541  "<Parameter name=\"sa: use filtered matrix\" type=\"bool\" value=\"true\"/>"
542 
543  "<Parameter name=\"emin: use filtered matrix\" type=\"bool\" value=\"true\"/>"
544 
545  "</ParameterList>"
546  )
547 ;
549 
550  ("default values","problem: type")
551 
552  ("ML output","verbosity")
553 
554  ("output filename","output filename")
555 
556  ("PDE equations","number of equations")
557 
558  ("max levels","max levels")
559 
560  ("prec type","cycle type")
561 
562  ("W cycle start level","W cycle start level")
563 
564  ("coarse grid correction scaling factor","coarse grid correction scaling factor")
565 
566  ("fuse prolongation and update","fuse prolongation and update")
567 
568  ("number of vectors","number of vectors")
569 
570  ("problem: symmetric","problem: symmetric")
571 
572  ("xml parameter file","xml parameter file")
573 
574  ("parameterlist: syntax","parameterlist: syntax")
575 
576  ("ML label","hierarchy label")
577 
578  ("matvec params","matvec params")
579 
580  ("half precision","half precision")
581 
582  ("smoother: pre or post","smoother: pre or post")
583 
584  ("smoother: type","smoother: type")
585 
586  ("smoother: pre type","smoother: pre type")
587 
588  ("smoother: post type","smoother: post type")
589 
590  ("smoother: params","smoother: params")
591 
592  ("smoother: pre params","smoother: pre params")
593 
594  ("smoother: post params","smoother: post params")
595 
596  ("smoother: overlap","smoother: overlap")
597 
598  ("smoother: pre overlap","smoother: pre overlap")
599 
600  ("smoother: post overlap","smoother: post overlap")
601 
602  ("max size","coarse: max size")
603 
604  ("coarse: type","coarse: type")
605 
606  ("coarse: params","coarse: params")
607 
608  ("coarse: overlap","coarse: overlap")
609 
610  ("aggregation: type","aggregation: type")
611 
612  ("aggregation: mode","aggregation: mode")
613 
614  ("aggregation: ordering","aggregation: ordering")
615 
616  ("aggregation: drop scheme","aggregation: drop scheme")
617 
618  ("aggregation: classical scheme","aggregation: classical scheme")
619 
620  ("aggregation: row sum drop tol","aggregation: row sum drop tol")
621 
622  ("aggregation: block diagonal: interleaved blocksize","aggregation: block diagonal: interleaved blocksize")
623 
624  ("aggregation: number of random vectors","aggregation: number of random vectors")
625 
626  ("aggregation: number of times to pre or post smooth","aggregation: number of times to pre or post smooth")
627 
628  ("aggregation: penalty parameters","aggregation: penalty parameters")
629 
630  ("aggregation: distance laplacian directional weights","aggregation: distance laplacian directional weights")
631 
632  ("aggregation: distance laplacian algo","aggregation: distance laplacian algo")
633 
634  ("aggregation: classical algo","aggregation: classical algo")
635 
636  ("aggregation: threshold","aggregation: drop tol")
637 
638  ("aggregation: min agg size","aggregation: min agg size")
639 
640  ("aggregation: max agg size","aggregation: max agg size")
641 
642  ("aggregation: compute aggregate qualities","aggregation: compute aggregate qualities")
643 
644  ("aggregation: brick x size","aggregation: brick x size")
645 
646  ("aggregation: brick y size","aggregation: brick y size")
647 
648  ("aggregation: brick z size","aggregation: brick z size")
649 
650  ("aggregation: brick x Dirichlet","aggregation: brick x Dirichlet")
651 
652  ("aggregation: brick y Dirichlet","aggregation: brick y Dirichlet")
653 
654  ("aggregation: brick z Dirichlet","aggregation: brick z Dirichlet")
655 
656  ("aggregation: max selected neighbors","aggregation: max selected neighbors")
657 
658  ("aggregation: Dirichlet threshold","aggregation: Dirichlet threshold")
659 
660  ("aggregation: greedy Dirichlet","aggregation: greedy Dirichlet")
661 
662  ("aggregation: deterministic","aggregation: deterministic")
663 
664  ("aggregation: coloring algorithm","aggregation: coloring algorithm")
665 
666  ("aggregation: coloring: use color graph","aggregation: coloring: use color graph")
667 
668  ("aggregation: coloring: localize color graph","aggregation: coloring: localize color graph")
669 
670  ("aggregation: enable phase 1","aggregation: enable phase 1")
671 
672  ("aggregation: enable phase 2a","aggregation: enable phase 2a")
673 
674  ("aggregation: enable phase 2b","aggregation: enable phase 2b")
675 
676  ("aggregation: enable phase 3","aggregation: enable phase 3")
677 
678  ("aggregation: phase2a include root","aggregation: phase2a include root")
679 
680  ("aggregation: phase2a agg factor","aggregation: phase2a agg factor")
681 
682  ("aggregation: error on nodes with no on-rank neighbors","aggregation: error on nodes with no on-rank neighbors")
683 
684  ("aggregation: phase3 avoid singletons","aggregation: phase3 avoid singletons")
685 
686  ("aggregation: allow empty prolongator columns","aggregation: allow empty prolongator columns")
687 
688  ("aggregation: preserve Dirichlet points","aggregation: preserve Dirichlet points")
689 
690  ("aggregation: allow user-specified singletons","aggregation: allow user-specified singletons")
691 
692  ("aggregation: use interface aggregation","aggregation: use interface aggregation")
693 
694  ("aggregation: export visualization data","aggregation: export visualization data")
695 
696  ("aggregation: output filename","aggregation: output filename")
697 
698  ("aggregation: output file: time step","aggregation: output file: time step")
699 
700  ("aggregation: output file: iter","aggregation: output file: iter")
701 
702  ("aggregation: output file: agg style","aggregation: output file: agg style")
703 
704  ("aggregation: output file: fine graph edges","aggregation: output file: fine graph edges")
705 
706  ("aggregation: output file: coarse graph edges","aggregation: output file: coarse graph edges")
707 
708  ("aggregation: output file: build colormap","aggregation: output file: build colormap")
709 
710  ("aggregation: params","aggregation: params")
711 
712  ("strength-of-connection: params","strength-of-connection: params")
713 
714  ("aggregation: mesh layout","aggregation: mesh layout")
715 
716  ("aggregation: output type","aggregation: output type")
717 
718  ("aggregation: coarsening rate","aggregation: coarsening rate")
719 
720  ("aggregation: number of spatial dimensions","aggregation: number of spatial dimensions")
721 
722  ("aggregation: coarsening order","aggregation: coarsening order")
723 
724  ("aggregation: pairwise: size","aggregation: pairwise: size")
725 
726  ("aggregation: pairwise: tie threshold","aggregation: pairwise: tie threshold")
727 
728  ("aggregate qualities: check symmetry","aggregate qualities: check symmetry")
729 
730  ("aggregate qualities: good aggregate threshold","aggregate qualities: good aggregate threshold")
731 
732  ("aggregate qualities: file output","aggregate qualities: file output")
733 
734  ("aggregate qualities: file base","aggregate qualities: file base")
735 
736  ("aggregate qualities: algorithm","aggregate qualities: algorithm")
737 
738  ("aggregate qualities: zero threshold","aggregate qualities: zero threshold")
739 
740  ("aggregate qualities: percentiles","aggregate qualities: percentiles")
741 
742  ("aggregate qualities: mode","aggregate qualities: mode")
743 
744  ("export data","export data")
745 
746  ("ML print initial list","print initial parameters")
747 
748  ("print unused","print unused parameters")
749 
750  ("transpose: use implicit","transpose: use implicit")
751 
752  ("restriction: scale nullspace","restriction: scale nullspace")
753 
754  ("use kokkos refactor","use kokkos refactor")
755 
756  ("synchronize factory timers","synchronize factory timers")
757 
758  ("rap: triple product","rap: triple product")
759 
760  ("energy minimization: enable","multigrid algorithm")
761 
762  ("toggle: mode","toggle: mode")
763 
764  ("semicoarsen: coarsen rate","semicoarsen: coarsen rate")
765 
766  ("semicoarsen: piecewise constant","semicoarsen: piecewise constant")
767 
768  ("semicoarsen: number of levels","semicoarsen: number of levels")
769 
770  ("linedetection: orientation","linedetection: orientation")
771 
772  ("linedetection: num layers","linedetection: num layers")
773 
774  ("aggregation: damping factor","sa: damping factor")
775 
776  ("sa: use filtered matrix","sa: use filtered matrix")
777 
778  ("sa: calculate eigenvalue estimate","sa: calculate eigenvalue estimate")
779 
780  ("eigen-analysis: iterations","sa: eigenvalue estimate num iterations")
781 
782  ("not supported by ML","sa: use rowsumabs diagonal scaling")
783 
784  ("not supported by ML","sa: enforce constraints")
785 
786  ("not supported by ML","sa: max eigenvalue")
787 
788  ("not supported by ML","sa: rowsumabs diagonal replacement tolerance")
789 
790  ("not supported by ML","sa: rowsumabs diagonal replacement value")
791 
792  ("interp: build coarse coordinates","interp: build coarse coordinates")
793 
794  ("transfer: params","transfer: params")
795 
796  ("pcoarsen: element","pcoarsen: element")
797 
798  ("pcoarsen: schedule","pcoarsen: schedule")
799 
800  ("pcoarsen: hi basis","pcoarsen: hi basis")
801 
802  ("pcoarsen: lo basis","pcoarsen: lo basis")
803 
804  ("smoother: neighborhood type","smoother: neighborhood type")
805 
806  ("filtered matrix: use lumping","filtered matrix: use lumping")
807 
808  ("filtered matrix: use spread lumping","filtered matrix: use spread lumping")
809 
810  ("filtered matrix: spread lumping diag dom growth factor","filtered matrix: spread lumping diag dom growth factor")
811 
812  ("filtered matrix: spread lumping diag dom cap","filtered matrix: spread lumping diag dom cap")
813 
814  ("filtered matrix: use root stencil","filtered matrix: use root stencil")
815 
816  ("filtered matrix: Dirichlet threshold","filtered matrix: Dirichlet threshold")
817 
818  ("filtered matrix: reuse eigenvalue","filtered matrix: reuse eigenvalue")
819 
820  ("filtered matrix: reuse graph","filtered matrix: reuse graph")
821 
822  ("emin: iterative method","emin: iterative method")
823 
824  ("emin: num iterations","emin: num iterations")
825 
826  ("emin: num reuse iterations","emin: num reuse iterations")
827 
828  ("emin: pattern","emin: pattern")
829 
830  ("emin: pattern order","emin: pattern order")
831 
832  ("emin: use filtered matrix","emin: use filtered matrix")
833 
834  ("tentative: calculate qr","tentative: calculate qr")
835 
836  ("tentative: constant column sums","tentative: constant column sums")
837 
838  ("tentative: build coarse coordinates","tentative: build coarse coordinates")
839 
840  ("repartition: enable","repartition: enable")
841 
842  ("repartition: partitioner","repartition: partitioner")
843 
844  ("repartition: params","repartition: params")
845 
846  ("repartition: start level","repartition: start level")
847 
848  ("repartition: use map","repartition: use map")
849 
850  ("repartition: node repartition level","repartition: node repartition level")
851 
852  ("repartition: node id","repartition: node id")
853 
854  ("repartition: min per proc","repartition: min rows per proc")
855 
856  ("repartition: target rows per proc","repartition: target rows per proc")
857 
858  ("repartition: min rows per thread","repartition: min rows per thread")
859 
860  ("repartition: target rows per thread","repartition: target rows per thread")
861 
862  ("repartition: max min ratio","repartition: max imbalance")
863 
864  ("repartition: remap parts","repartition: remap parts")
865 
866  ("repartition: remap num values","repartition: remap num values")
867 
868  ("repartition: remap accept partition","repartition: remap accept partition")
869 
870  ("repartition: print partition distribution","repartition: print partition distribution")
871 
872  ("repartition: rebalance P and R","repartition: rebalance P and R")
873 
874  ("repartition: rebalance Nullspace","repartition: rebalance Nullspace")
875 
876  ("repartition: use subcommunicators","repartition: use subcommunicators")
877 
878  ("rap: relative diagonal floor","rap: relative diagonal floor")
879 
880  ("rap: fix zero diagonals","rap: fix zero diagonals")
881 
882  ("rap: fix zero diagonals threshold","rap: fix zero diagonals threshold")
883 
884  ("rap: fix zero diagonals replacement","rap: fix zero diagonals replacement")
885 
886  ("rap: shift","rap: shift")
887 
888  ("rap: shift diagonal M","rap: shift diagonal M")
889 
890  ("rap: shift low storage","rap: shift low storage")
891 
892  ("rap: shift array","rap: shift array")
893 
894  ("rap: cfl array","rap: cfl array")
895 
896  ("rap: algorithm","rap: algorithm")
897 
898  ("matrixmatrix: kernel params","matrixmatrix: kernel params")
899 
900  ("matrixmatrix: kernel params:MM_TAFC_OptimizationCoreCount ","matrixmatrix: kernel params:MM_TAFC_OptimizationCoreCount ")
901 
902  ("isMatrixMatrix_TransferAndFillComplete ","isMatrixMatrix_TransferAndFillComplete ")
903 
904  ("reuse: type","reuse: type")
905 
906  ("use external multigrid package","use external multigrid package")
907 
908  ("amgx:params","amgx:params")
909 
910  ("debug: graph level","debug: graph level")
911 
912  ("maxwell1: mode","maxwell1: mode")
913 
914  ("maxwell1: 11list","maxwell1: 11list")
915 
916  ("maxwell1: 22list","maxwell1: 22list")
917 
918  ("refmaxwell: mode","refmaxwell: mode")
919 
920  ("refmaxwell: disable addon","refmaxwell: disable addon")
921 
922  ("refmaxwell: 11list","refmaxwell: 11list")
923 
924  ("refmaxwell: 22list","refmaxwell: 22list")
925 
926  ("zero starting solution","refmaxwell: use as preconditioner")
927 
928  ("refmaxwell: dump matrices","refmaxwell: dump matrices")
929 
930  ("refmaxwell: subsolves on subcommunicators","refmaxwell: subsolves on subcommunicators")
931 
932  ("refmaxwell: enable reuse","refmaxwell: enable reuse")
933 
934  ("refmaxwell: skip first (1,1) level","refmaxwell: skip first (1,1) level")
935 
936  ("refmaxwell: normalize nullspace","refmaxwell: normalize nullspace")
937  ;
938 
939 }
940 
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.