Skip to content

Commit

Permalink
Merge 'trilinos/Trilinos:develop' (7396a09) into 'tcad-charon/Trilino…
Browse files Browse the repository at this point in the history
…s:develop' (7d36349).

* trilinos-develop:
  MueLu: Rebase
  Tpetra: Fix trilinos#4951 (remove normImpl ETI)
  avoid double testing a condition
  MueLu: Updateing diagonal limiting
  Xpetra: More Updates
  Xpetra: Making code compile
  MueLu: Adding relative diagonal flooring to both RAP and RAPShift
  Xpetra: Adding relative diagonal flooring capability
  add throw to row matrix add
  • Loading branch information
Jenkins Pipeline committed May 9, 2019
2 parents 7d36349 + 7396a09 commit 9dd2e7d
Show file tree
Hide file tree
Showing 439 changed files with 1,421 additions and 232 deletions.
10 changes: 10 additions & 0 deletions packages/muelu/doc/UsersGuide/masterList.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1169,6 +1169,16 @@

<rap>

<parameter>
<name>rap: relative diagonal floor</name>
<type>Array(double)</type>
<default>{}</default>
<description>Will boost diagonals on A matrices to the given floor.</description>
<comment-ML>not supported by ML</comment-ML>
<visible>false</visible>
</parameter>


<parameter>
<name>rap: fix zero diagonals</name>
<type>bool</type>
Expand Down
2 changes: 2 additions & 0 deletions packages/muelu/doc/UsersGuide/paramlist_hidden.tex
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,8 @@

\cbb{repartition: use subcommunicators}{bool}{true}{Use subcommunicators on coarser levels.}

\cbb{rap: relative diagonal floor}{Array(double)}{{}}{Will boost diagonals on A matrices to the given floor.}

\cbb{rap: fix zero diagonals}{bool}{false}{Set zero diagonals on coarse grids to one.}

\cbb{rap: fix zero diagonals threshold}{double}{0.}{Threshold at which diagonal entry is considered zero.}
Expand Down
3 changes: 1 addition & 2 deletions packages/muelu/src/Misc/MueLu_RAPFactory_decl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,7 @@ namespace MueLu {
private:

//@{



mutable
bool hasDeclaredInput_;

Expand Down
15 changes: 15 additions & 0 deletions packages/muelu/src/Misc/MueLu_RAPFactory_def.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ namespace MueLu {
SET_VALID_ENTRY("transpose: use implicit");
SET_VALID_ENTRY("rap: triple product");
SET_VALID_ENTRY("rap: fix zero diagonals");
SET_VALID_ENTRY("rap: relative diagonal floor");
#undef SET_VALID_ENTRY
validParamList->set< RCP<const FactoryBase> >("A", null, "Generating factory of the matrix A used during the prolongator smoothing process");
validParamList->set< RCP<const FactoryBase> >("P", null, "Prolongator factory");
Expand Down Expand Up @@ -196,6 +197,12 @@ namespace MueLu {
Ac = MatrixMatrix::Multiply(*R, !doTranspose, *AP, !doTranspose, Ac, GetOStream(Statistics2),
doFillComplete, doOptimizeStorage, labelstr+std::string("MueLu::R*(AP)-explicit-")+levelstr.str(), RAPparams);
}

Teuchos::ArrayView<const double> relativeFloor = pL.get<Teuchos::Array<double> >("rap: relative diagonal floor")();
if(relativeFloor.size() > 0) {
Xpetra::MatrixUtils<SC,LO,GO,NO>::RelativeDiagonalBoost(Ac, relativeFloor,GetOStream(Statistics2));
}

bool repairZeroDiagonals = pL.get<bool>("RepairMainDiagonal") || pL.get<bool>("rap: fix zero diagonals");
bool checkAc = pL.get<bool>("CheckMainDiagonal")|| pL.get<bool>("rap: fix zero diagonals"); ;
if (checkAc || repairZeroDiagonals)
Expand Down Expand Up @@ -246,11 +253,19 @@ namespace MueLu {
doOptimizeStorage, labelstr+std::string("MueLu::R*A*P-explicit-")+levelstr.str(),
RAPparams);
}

Teuchos::ArrayView<const double> relativeFloor = pL.get<Teuchos::Array<double> >("rap: relative diagonal floor")();
if(relativeFloor.size() > 0) {
Xpetra::MatrixUtils<SC,LO,GO,NO>::RelativeDiagonalBoost(Ac, relativeFloor,GetOStream(Statistics2));
}

bool repairZeroDiagonals = pL.get<bool>("RepairMainDiagonal") || pL.get<bool>("rap: fix zero diagonals");
bool checkAc = pL.get<bool>("CheckMainDiagonal")|| pL.get<bool>("rap: fix zero diagonals"); ;
if (checkAc || repairZeroDiagonals)
Xpetra::MatrixUtils<SC,LO,GO,NO>::CheckRepairMainDiagonal(Ac, repairZeroDiagonals, GetOStream(Warnings1));



if (IsPrint(Statistics2)) {
RCP<ParameterList> params = rcp(new ParameterList());;
params->set("printLoadBalancingInfo", true);
Expand Down
6 changes: 6 additions & 0 deletions packages/muelu/src/Misc/MueLu_RAPShiftFactory_def.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ namespace MueLu {
SET_VALID_ENTRY("rap: cfl array");
SET_VALID_ENTRY("rap: shift diagonal M");
SET_VALID_ENTRY("rap: shift low storage");
SET_VALID_ENTRY("rap: relative diagonal floor");
#undef SET_VALID_ENTRY

validParamList->set< RCP<const FactoryBase> >("A", Teuchos::null, "Generating factory of the matrix A used during the prolongator smoothing process");
Expand Down Expand Up @@ -338,6 +339,11 @@ namespace MueLu {
Ac->fillComplete();
}

Teuchos::ArrayView<const double> relativeFloor = pL.get<Teuchos::Array<double> >("rap: relative diagonal floor")();
if(relativeFloor.size() > 0)
Xpetra::MatrixUtils<SC,LO,GO,NO>::RelativeDiagonalBoost(Ac, relativeFloor,GetOStream(Statistics2));


bool repairZeroDiagonals = pL.get<bool>("RepairMainDiagonal") || pL.get<bool>("rap: fix zero diagonals");
bool checkAc = pL.get<bool>("CheckMainDiagonal")|| pL.get<bool>("rap: fix zero diagonals"); ;
if (checkAc || repairZeroDiagonals)
Expand Down
3 changes: 3 additions & 0 deletions packages/muelu/src/MueCentral/MueLu_MasterList.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,7 @@ namespace MueLu {
"<Parameter name=\"repartition: rebalance P and R\" type=\"bool\" value=\"false\"/>"
"<Parameter name=\"repartition: rebalance Nullspace\" type=\"bool\" value=\"true\"/>"
"<Parameter name=\"repartition: use subcommunicators\" type=\"bool\" value=\"true\"/>"
"<Parameter name=\"rap: relative diagonal floor\" type=\"Array(double)\" value=\"{}\"/>"
"<Parameter name=\"rap: fix zero diagonals\" type=\"bool\" value=\"false\"/>"
"<Parameter name=\"rap: fix zero diagonals threshold\" type=\"double\" value=\"0.\"/>"
"<Parameter name=\"rap: shift\" type=\"double\" value=\"0.0\"/>"
Expand Down Expand Up @@ -692,6 +693,8 @@ namespace MueLu {

("repartition: use subcommunicators","repartition: use subcommunicators")

("rap: relative diagonal floor","rap: relative diagonal floor")

("rap: fix zero diagonals","rap: fix zero diagonals")

("rap: fix zero diagonals threshold","rap: fix zero diagonals threshold")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -170,6 +171,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -259,6 +261,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -170,6 +171,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -259,6 +261,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -348,6 +351,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -437,6 +441,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -170,6 +171,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -259,6 +261,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -348,6 +351,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -170,6 +171,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -174,6 +175,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -265,6 +267,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -356,6 +359,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -170,6 +171,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -259,6 +261,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -348,6 +351,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -170,6 +171,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -259,6 +261,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -348,6 +351,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -170,6 +171,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -259,6 +261,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -348,6 +351,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -170,6 +171,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -259,6 +261,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down Expand Up @@ -348,6 +351,7 @@ Computing Ac (MueLu::RAPFactory)
transpose: use implicit = 0 [default]
rap: triple product = 0 [default]
rap: fix zero diagonals = 0 [default]
rap: relative diagonal floor = {} [default]
CheckMainDiagonal = 0 [default]
RepairMainDiagonal = 0
matrixmatrix: kernel params ->
Expand Down
Loading

0 comments on commit 9dd2e7d

Please sign in to comment.