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 <<
"/>";
95 if (name ==
"cycle type") {
96 std::stringstream temp1; temp1 <<
"\"" <<
"MGV" <<
"\"";
97 std::stringstream temp2; temp2 <<
"\"" <<
"MGV" <<
"\"";
98 if (value == temp1.str() ) { ss <<
"<Parameter name=\"cycle type\" type=\"string\" value=\"V\"/>";
return ss.str(); }
99 else if (value == temp2.str()) { ss <<
"<Parameter name=\"cycle type\" type=\"string\" value=\"W\"/>";
return ss.str(); }
101 <<
"The parameter " << value <<
" is not supported by MueLu.");
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(); }
111 if (name ==
"repartition: enable") {
112 std::stringstream temp1; temp1 <<
"\"" <<
"1" <<
"\"";
113 if (value == temp1.str()) {
115 *out <<
"WARNING: repartitioning in MueLu is different to MLs. Please refer to the MueLu users Manual for more information." << std::endl;
122 if (name ==
"number of equations") { ss <<
"<Parameter name=\"number of equations\" type=\"int\" value=" << value <<
"/>";
return ss.str(); }
123 if (name ==
"max levels") { ss <<
"<Parameter name=\"max levels\" type=\"int\" value=" << value <<
"/>";
return ss.str(); }
124 if (name ==
"problem: symmetric") { ss <<
"<Parameter name=\"problem: symmetric\" type=\"bool\" value=" << value <<
"/>";
return ss.str(); }
125 if (name ==
"aggregation: drop tol") { ss <<
"<Parameter name=\"aggregation: drop tol\" type=\"double\" value=" << value <<
"/>";
return ss.str(); }
126 if (name ==
"print initial parameters") { ss <<
"<Parameter name=\"print initial parameters\" type=\"bool\" value=" << value <<
"/>";
return ss.str(); }
127 if (name ==
"print unused parameters") { ss <<
"<Parameter name=\"print unused parameters\" type=\"bool\" value=" << value <<
"/>";
return ss.str(); }
128 if (name ==
"sa: damping factor") { ss <<
"<Parameter name=\"sa: damping factor\" type=\"double\" value=" << value <<
"/>";
return ss.str(); }
129 if (name ==
"sa: eigenvalue estimate num iterations") { ss <<
"<Parameter name=\"sa: eigenvalue estimate num iterations\" type=\"int\" value=" << value <<
"/>";
return ss.str(); }
130 if (name ==
"repartition: enable") { ss <<
"<Parameter name=\"repartition: enable\" type=\"bool\" value=" << value <<
"/>";
return ss.str(); }
131 if (name ==
"repartition: start level") { ss <<
"<Parameter name=\"repartition: start level\" type=\"int\" value=" << value <<
"/>";
return ss.str(); }
132 if (name ==
"repartition: min rows per proc") { ss <<
"<Parameter name=\"repartition: min rows per proc\" type=\"int\" value=" << value <<
"/>";
return ss.str(); }
133 if (name ==
"repartition: max imbalance") { ss <<
"<Parameter name=\"repartition: max imbalance\" type=\"double\" value=" << value <<
"/>";
return ss.str(); }
134 if (name ==
"use external multigrid package") { ss <<
"<Parameter name=\"use external multigrid package\" type=\"string\" value=" << value <<
"/>";
return ss.str(); }
142 "<ParameterList name=\"MueLu\">" 143 "<Parameter name=\"problem: type\" type=\"string\" value=\"unknown\"/>" 144 "<Parameter name=\"verbosity\" type=\"string\" value=\"high\"/>" 145 "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>" 146 "<Parameter name=\"max levels\" type=\"int\" value=\"10\"/>" 147 "<Parameter name=\"cycle type\" type=\"string\" value=\"V\"/>" 148 "<Parameter name=\"problem: symmetric\" type=\"bool\" value=\"true\"/>" 149 "<Parameter name=\"xml parameter file\" type=\"string\" value=\"\"/>" 150 "<Parameter name=\"parameterlist: syntax\" type=\"string\" value=\"muelu\"/>" 151 "<Parameter name=\"smoother: pre or post\" type=\"string\" value=\"both\"/>" 152 "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>" 153 "<Parameter name=\"smoother: pre type\" type=\"string\" value=\"RELAXATION\"/>" 154 "<Parameter name=\"smoother: post type\" type=\"string\" value=\"RELAXATION\"/>" 155 "<ParameterList name=\"smoother: params\"/>" 156 "<ParameterList name=\"smoother: pre params\"/>" 157 "<ParameterList name=\"smoother: post params\"/>" 158 "<Parameter name=\"smoother: overlap\" type=\"int\" value=\"0\"/>" 159 "<Parameter name=\"smoother: pre overlap\" type=\"int\" value=\"0\"/>" 160 "<Parameter name=\"smoother: post overlap\" type=\"int\" value=\"0\"/>" 161 "<Parameter name=\"coarse: max size\" type=\"int\" value=\"2000\"/>" 162 "<Parameter name=\"coarse: type\" type=\"string\" value=\"SuperLU\"/>" 163 "<ParameterList name=\"coarse: params\"/>" 164 "<Parameter name=\"coarse: overlap\" type=\"int\" value=\"0\"/>" 165 "<Parameter name=\"aggregation: type\" type=\"string\" value=\"uncoupled\"/>" 166 "<Parameter name=\"aggregation: ordering\" type=\"string\" value=\"natural\"/>" 167 "<Parameter name=\"aggregation: drop scheme\" type=\"string\" value=\"classical\"/>" 168 "<Parameter name=\"aggregation: drop tol\" type=\"double\" value=\"0.0\"/>" 169 "<Parameter name=\"aggregation: min agg size\" type=\"int\" value=\"2\"/>" 170 "<Parameter name=\"aggregation: max agg size\" type=\"int\" value=\"-1\"/>" 171 "<Parameter name=\"aggregation: brick x size\" type=\"int\" value=\"2\"/>" 172 "<Parameter name=\"aggregation: brick y size\" type=\"int\" value=\"2\"/>" 173 "<Parameter name=\"aggregation: brick z size\" type=\"int\" value=\"2\"/>" 174 "<Parameter name=\"aggregation: max selected neighbors\" type=\"int\" value=\"0\"/>" 175 "<Parameter name=\"aggregation: Dirichlet threshold\" type=\"double\" value=\"0.0\"/>" 176 "<Parameter name=\"aggregation: enable phase 1\" type=\"bool\" value=\"true\"/>" 177 "<Parameter name=\"aggregation: enable phase 2a\" type=\"bool\" value=\"true\"/>" 178 "<Parameter name=\"aggregation: enable phase 2b\" type=\"bool\" value=\"true\"/>" 179 "<Parameter name=\"aggregation: enable phase 3\" type=\"bool\" value=\"true\"/>" 180 "<Parameter name=\"aggregation: allow empty prolongator columns\" type=\"bool\" value=\"false\"/>" 181 "<Parameter name=\"aggregation: preserve Dirichlet points\" type=\"bool\" value=\"false\"/>" 182 "<Parameter name=\"aggregation: allow user-specified singletons\" type=\"bool\" value=\"false\"/>" 183 "<Parameter name=\"aggregation: export visualization data\" type=\"bool\" value=\"false\"/>" 184 "<Parameter name=\"aggregation: output filename\" type=\"string\" value=\"\"/>" 185 "<Parameter name=\"aggregation: output file: time step\" type=\"int\" value=\"0\"/>" 186 "<Parameter name=\"aggregation: output file: iter\" type=\"int\" value=\"0\"/>" 187 "<Parameter name=\"aggregation: output file: agg style\" type=\"string\" value=\"Point Cloud\"/>" 188 "<Parameter name=\"aggregation: output file: fine graph edges\" type=\"bool\" value=\"false\"/>" 189 "<Parameter name=\"aggregation: output file: coarse graph edges\" type=\"bool\" value=\"false\"/>" 190 "<Parameter name=\"aggregation: output file: build colormap\" type=\"bool\" value=\"false\"/>" 191 "<ParameterList name=\"aggregation: params\"/>" 192 "<ParameterList name=\"strength-of-connection: params\"/>" 193 "<ParameterList name=\"export data\"/>" 194 "<Parameter name=\"print initial parameters\" type=\"bool\" value=\"true\"/>" 195 "<Parameter name=\"print unused parameters\" type=\"bool\" value=\"true\"/>" 196 "<Parameter name=\"transpose: use implicit\" type=\"bool\" value=\"false\"/>" 197 "<Parameter name=\"use kokkos refactor\" type=\"bool\" value=\"false\"/>" 198 "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>" 199 "<Parameter name=\"toggle: mode\" type=\"string\" value=\"semicoarsen\"/>" 200 "<Parameter name=\"semicoarsen: coarsen rate\" type=\"int\" value=\"3\"/>" 201 "<Parameter name=\"semicoarsen: number of levels\" type=\"int\" value=\"3\"/>" 202 "<Parameter name=\"linedetection: orientation\" type=\"string\" value=\"vertical\"/>" 203 "<Parameter name=\"linedetection: num layers\" type=\"int\" value=\"-1\"/>" 204 "<Parameter name=\"sa: damping factor\" type=\"double\" value=\"1.33\"/>" 205 "<Parameter name=\"sa: use filtered matrix\" type=\"bool\" value=\"true\"/>" 206 "<Parameter name=\"sa: calculate eigenvalue estimate\" type=\"bool\" value=\"false\"/>" 207 "<Parameter name=\"sa: eigenvalue estimate num iterations\" type=\"int\" value=\"10\"/>" 208 "<ParameterList name=\"transfer: params\"/>" 209 "<Parameter name=\"filtered matrix: use lumping\" type=\"bool\" value=\"true\"/>" 210 "<Parameter name=\"filtered matrix: reuse eigenvalue\" type=\"bool\" value=\"true\"/>" 211 "<Parameter name=\"filtered matrix: reuse graph\" type=\"bool\" value=\"true\"/>" 212 "<Parameter name=\"emin: iterative method\" type=\"string\" value=\"cg\"/>" 213 "<Parameter name=\"emin: num iterations\" type=\"int\" value=\"2\"/>" 214 "<Parameter name=\"emin: num reuse iterations\" type=\"int\" value=\"1\"/>" 215 "<Parameter name=\"emin: pattern\" type=\"string\" value=\"AkPtent\"/>" 216 "<Parameter name=\"emin: pattern order\" type=\"int\" value=\"1\"/>" 217 "<Parameter name=\"repartition: enable\" type=\"bool\" value=\"false\"/>" 218 "<Parameter name=\"repartition: partitioner\" type=\"string\" value=\"zoltan2\"/>" 219 "<ParameterList name=\"repartition: params\"/>" 220 "<Parameter name=\"repartition: start level\" type=\"int\" value=\"2\"/>" 221 "<Parameter name=\"repartition: min rows per proc\" type=\"int\" value=\"800\"/>" 222 "<Parameter name=\"repartition: max imbalance\" type=\"double\" value=\"1.2\"/>" 223 "<Parameter name=\"repartition: remap parts\" type=\"bool\" value=\"true\"/>" 224 "<Parameter name=\"repartition: remap num values\" type=\"int\" value=\"4\"/>" 225 "<Parameter name=\"repartition: print partition distribution\" type=\"bool\" value=\"false\"/>" 226 "<Parameter name=\"repartition: rebalance P and R\" type=\"bool\" value=\"false\"/>" 227 "<Parameter name=\"repartition: use subcommunicators\" type=\"bool\" value=\"true\"/>" 228 "<Parameter name=\"reuse: type\" type=\"string\" value=\"none\"/>" 229 "<Parameter name=\"use external multigrid package\" type=\"string\" value=\"none\"/>" 230 "<ParameterList name=\"amgx:params\"/>" 231 "<Parameter name=\"debug: graph level\" type=\"int\" value=\"-1\"/>" 237 "<ParameterList name=\"MueLu\">" 239 "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>" 241 "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>" 243 "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>" 249 "<ParameterList name=\"MueLu\">" 251 "<Parameter name=\"number of equations\" type=\"int\" value=\"1\"/>" 253 "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>" 255 "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>" 261 "<ParameterList name=\"MueLu\">" 263 "<Parameter name=\"number of equations\" type=\"int\" value=\"2\"/>" 265 "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>" 267 "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>" 273 "<ParameterList name=\"MueLu\">" 275 "<Parameter name=\"number of equations\" type=\"int\" value=\"3\"/>" 277 "<Parameter name=\"smoother: type\" type=\"string\" value=\"CHEBYSHEV\"/>" 279 "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"sa\"/>" 285 "<ParameterList name=\"MueLu\">" 287 "<Parameter name=\"smoother: type\" type=\"string\" value=\"SCHWARZ\"/>" 289 "<ParameterList name=\"smoother: params\">" 291 "<Parameter name=\"schwarz: overlap level\" type=\"int\" value=\"1\"/>" 293 "<Parameter name=\"schwarz: combine mode\" type=\"string\" value=\"Zero\"/>" 295 "<Parameter name=\"schwarz: use reordering\" type=\"bool\" value=\"false\"/>" 297 "<Parameter name=\"subdomain solver name\" type=\"string\" value=\"RILUK\"/>" 299 "<ParameterList name=\"subdomain solver parameters\">" 301 "<Parameter name=\"fact: iluk level-of-fill\" type=\"int\" value=\"0\"/>" 303 "<Parameter name=\"fact: absolute threshold\" type=\"double\" value=\"0.\"/>" 305 "<Parameter name=\"fact: relative threshold\" type=\"double\" value=\"1.\"/>" 307 "<Parameter name=\"fact: relax value\" type=\"double\" value=\"0.\"/>" 313 "<Parameter name=\"transpose: use implicit\" type=\"bool\" value=\"true\"/>" 315 "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"unsmoothed\"/>" 319 (
"ConvectionDiffusion",
321 "<ParameterList name=\"MueLu\">" 323 "<Parameter name=\"problem: symmetric\" type=\"bool\" value=\"false\"/>" 325 "<Parameter name=\"smoother: type\" type=\"string\" value=\"RELAXATION\"/>" 327 "<ParameterList name=\"smoother: params\">" 329 "<Parameter name=\"relaxation: type\" type=\"string\" value=\"Gauss-Seidel\"/>" 333 "<Parameter name=\"multigrid algorithm\" type=\"string\" value=\"pg\"/>" 335 "<Parameter name=\"sa: use filtered matrix\" type=\"bool\" value=\"true\"/>" 342 (
"default values",
"problem: type")
344 (
"ML output",
"verbosity")
346 (
"PDE equations",
"number of equations")
348 (
"max levels",
"max levels")
350 (
"prec type",
"cycle type")
352 (
"problem: symmetric",
"problem: symmetric")
354 (
"xml parameter file",
"xml parameter file")
356 (
"parameterlist: syntax",
"parameterlist: syntax")
358 (
"smoother: pre or post",
"smoother: pre or post")
360 (
"smoother: type",
"smoother: type")
362 (
"smoother: pre type",
"smoother: pre type")
364 (
"smoother: post type",
"smoother: post type")
366 (
"smoother: params",
"smoother: params")
368 (
"smoother: pre params",
"smoother: pre params")
370 (
"smoother: post params",
"smoother: post params")
372 (
"smoother: overlap",
"smoother: overlap")
374 (
"smoother: pre overlap",
"smoother: pre overlap")
376 (
"smoother: post overlap",
"smoother: post overlap")
378 (
"max size",
"coarse: max size")
380 (
"coarse: type",
"coarse: type")
382 (
"coarse: params",
"coarse: params")
384 (
"coarse: overlap",
"coarse: overlap")
386 (
"aggregation: type",
"aggregation: type")
388 (
"aggregation: ordering",
"aggregation: ordering")
390 (
"aggregation: drop scheme",
"aggregation: drop scheme")
392 (
"aggregation: threshold",
"aggregation: drop tol")
394 (
"aggregation: min agg size",
"aggregation: min agg size")
396 (
"aggregation: max agg size",
"aggregation: max agg size")
398 (
"aggregation: brick x size",
"aggregation: brick x size")
400 (
"aggregation: brick y size",
"aggregation: brick y size")
402 (
"aggregation: brick z size",
"aggregation: brick z size")
404 (
"aggregation: max selected neighbors",
"aggregation: max selected neighbors")
406 (
"aggregation: Dirichlet threshold",
"aggregation: Dirichlet threshold")
408 (
"aggregation: enable phase 1",
"aggregation: enable phase 1")
410 (
"aggregation: enable phase 2a",
"aggregation: enable phase 2a")
412 (
"aggregation: enable phase 2b",
"aggregation: enable phase 2b")
414 (
"aggregation: enable phase 3",
"aggregation: enable phase 3")
416 (
"aggregation: allow empty prolongator columns",
"aggregation: allow empty prolongator columns")
418 (
"aggregation: preserve Dirichlet points",
"aggregation: preserve Dirichlet points")
420 (
"aggregation: allow user-specified singletons",
"aggregation: allow user-specified singletons")
422 (
"aggregation: export visualization data",
"aggregation: export visualization data")
424 (
"aggregation: output filename",
"aggregation: output filename")
426 (
"aggregation: output file: time step",
"aggregation: output file: time step")
428 (
"aggregation: output file: iter",
"aggregation: output file: iter")
430 (
"aggregation: output file: agg style",
"aggregation: output file: agg style")
432 (
"aggregation: output file: fine graph edges",
"aggregation: output file: fine graph edges")
434 (
"aggregation: output file: coarse graph edges",
"aggregation: output file: coarse graph edges")
436 (
"aggregation: output file: build colormap",
"aggregation: output file: build colormap")
438 (
"aggregation: params",
"aggregation: params")
440 (
"strength-of-connection: params",
"strength-of-connection: params")
442 (
"export data",
"export data")
444 (
"ML print initial list",
"print initial parameters")
446 (
"print unused",
"print unused parameters")
448 (
"transpose: use implicit",
"transpose: use implicit")
450 (
"use kokkos refactor",
"use kokkos refactor")
452 (
"energy minimization: enable",
"multigrid algorithm")
454 (
"toggle: mode",
"toggle: mode")
456 (
"semicoarsen: coarsen rate",
"semicoarsen: coarsen rate")
458 (
"semicoarsen: number of levels",
"semicoarsen: number of levels")
460 (
"linedetection: orientation",
"linedetection: orientation")
462 (
"linedetection: num layers",
"linedetection: num layers")
464 (
"aggregation: damping factor",
"sa: damping factor")
466 (
"sa: use filtered matrix",
"sa: use filtered matrix")
468 (
"sa: calculate eigenvalue estimate",
"sa: calculate eigenvalue estimate")
470 (
"eigen-analysis: iterations",
"sa: eigenvalue estimate num iterations")
472 (
"transfer: params",
"transfer: params")
474 (
"filtered matrix: use lumping",
"filtered matrix: use lumping")
476 (
"filtered matrix: reuse eigenvalue",
"filtered matrix: reuse eigenvalue")
478 (
"filtered matrix: reuse graph",
"filtered matrix: reuse graph")
480 (
"emin: iterative method",
"emin: iterative method")
482 (
"emin: num iterations",
"emin: num iterations")
484 (
"emin: num reuse iterations",
"emin: num reuse iterations")
486 (
"emin: pattern",
"emin: pattern")
488 (
"emin: pattern order",
"emin: pattern order")
490 (
"repartition: enable",
"repartition: enable")
492 (
"repartition: partitioner",
"repartition: partitioner")
494 (
"repartition: params",
"repartition: params")
496 (
"repartition: start level",
"repartition: start level")
498 (
"repartition: min per proc",
"repartition: min rows per proc")
500 (
"repartition: max min ratio",
"repartition: max imbalance")
502 (
"repartition: remap parts",
"repartition: remap parts")
504 (
"repartition: remap num values",
"repartition: remap num values")
506 (
"repartition: print partition distribution",
"repartition: print partition distribution")
508 (
"repartition: rebalance P and R",
"repartition: rebalance P and R")
510 (
"repartition: use subcommunicators",
"repartition: use subcommunicators")
512 (
"reuse: type",
"reuse: type")
514 (
"use external multigrid package",
"use external multigrid package")
516 (
"amgx:params",
"amgx:params")
518 (
"debug: graph level",
"debug: graph level")
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)
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.