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