diff --git a/packages/muelu/src/Misc/MueLu_RAPFactory_def.hpp b/packages/muelu/src/Misc/MueLu_RAPFactory_def.hpp index 09fc2db97eb9..2168efae79b1 100644 --- a/packages/muelu/src/Misc/MueLu_RAPFactory_def.hpp +++ b/packages/muelu/src/Misc/MueLu_RAPFactory_def.hpp @@ -134,9 +134,9 @@ namespace MueLu { // Reuse pattern if available (multiple solve) RCP APparams; if(pL.isSublist("matrixmatrix: kernel params")) - APparams=rcp(new ParameterList(pL.sublist("matrixmatrix: kernel params"))); + APparams = rcp(new ParameterList(pL.sublist("matrixmatrix: kernel params"))); else - APparams= rcp(new ParameterList); + APparams = rcp(new ParameterList); // By default, we don't need global constants for A*P APparams->set("compute global constants: temporaries",APparams->get("compute global constants: temporaries",false)); @@ -160,8 +160,10 @@ namespace MueLu { // Reuse coarse matrix memory if available (multiple solve) RCP RAPparams; - if(pL.isSublist("matrixmatrix: kernel params")) RAPparams=rcp(new ParameterList(pL.sublist("matrixmatrix: kernel params"))); - else RAPparams= rcp(new ParameterList); + if(pL.isSublist("matrixmatrix: kernel params")) + RAPparams = rcp(new ParameterList(pL.sublist("matrixmatrix: kernel params"))); + else + RAPparams = rcp(new ParameterList); @@ -220,7 +222,10 @@ namespace MueLu { Set(coarseLevel, "RAP reuse data", RAPparams); } else { RCP RAPparams; - RAPparams= rcp(new ParameterList); + if(pL.isSublist("matrixmatrix: kernel params")) + RAPparams = rcp(new ParameterList(pL.sublist("matrixmatrix: kernel params"))); + else + RAPparams = rcp(new ParameterList); // We *always* need global constants for the RAP, but not for the temps RAPparams->set("compute global constants: temporaries",RAPparams->get("compute global constants: temporaries",false)); diff --git a/packages/tpetra/core/ext/TpetraExt_MatrixMatrix_def.hpp b/packages/tpetra/core/ext/TpetraExt_MatrixMatrix_def.hpp index bf80dbc78b8a..dc448f9e1b0f 100644 --- a/packages/tpetra/core/ext/TpetraExt_MatrixMatrix_def.hpp +++ b/packages/tpetra/core/ext/TpetraExt_MatrixMatrix_def.hpp @@ -374,6 +374,8 @@ void Jacobi(Scalar omega, int mm_optimization_core_count=0; auto slist = params->sublist("matrixmatrix: kernel params",false); mm_optimization_core_count = slist.get("MM_TAFC_OptimizationCoreCount",::Tpetra::Details::Behavior::TAFC_OptimizationCoreCount ()); + int foo = params->get("MM_TAFC_OptimizationCoreCount",mm_optimization_core_count); + if(foosublist("matrixmatrix: kernel params",false); ip1slist.set("MM_TAFC_OptimizationCoreCount",mm_optimization_core_count); @@ -400,6 +402,8 @@ void Jacobi(Scalar omega, int mm_optimization_core_count = slist.get("MM_TAFC_OptimizationCoreCount",::Tpetra::Details::Behavior::TAFC_OptimizationCoreCount () ); bool isMM = slist.get("isMatrixMatrix_TransferAndFillComplete",false); auto & ip2slist = importParams2->sublist("matrixmatrix: kernel params",false); + int foo = params->get("MM_TAFC_OptimizationCoreCount",mm_optimization_core_count); + if(fooget("MM_TAFC_OptimizationCoreCount",mm_optimization_core_count); + if(foosublist("matrixmatrix: kernel params",false); sip1.set("MM_TAFC_OptimizationCoreCount",mm_optimization_core_count); sip1.set("isMatrixMatrix_TransferAndFillComplete",isMM); @@ -1518,6 +1524,8 @@ void mult_AT_B_newmatrix( bool isMM = slist.get("isMatrixMatrix_TransferAndFillComplete",false); int mm_optimization_core_count=3000; // ~3000 for serrano mm_optimization_core_count = slist.get("MM_TAFC_OptimizationCoreCount",mm_optimization_core_count); + int foo = params->get("MM_TAFC_OptimizationCoreCount",mm_optimization_core_count); + if(foosublist("matrixmatrix: kernel params",false); sip2.set("MM_TAFC_OptimizationCoreCount",mm_optimization_core_count); sip2.set("isMatrixMatrix_TransferAndFillComplete",isMM); @@ -1563,8 +1571,11 @@ void mult_AT_B_newmatrix( if(!params.is_null()) { Teuchos::ParameterList& params_sublist = params->sublist("matrixmatrix: kernel params",false); Teuchos::ParameterList& labelList_subList = labelList.sublist("matrixmatrix: kernel params",false); - int foundcount = params_sublist.get("MM_TAFC_OptimizationCoreCount",3000); - labelList_subList.set("MM_TAFC_OptimizationCoreCount",foundcount,"Core Count above which the optimized neighbor discovery is used"); + int mm_optimization_core_count = 3000; + mm_optimization_core_count = params_sublist.get("MM_TAFC_OptimizationCoreCount",mm_optimization_core_count); + int foo = params->get("MM_TAFC_OptimizationCoreCount",mm_optimization_core_count); + if(foo Acprime = rcpFromRef(Ac); - if(!params.is_null()) labelList.set("compute global constants",params->get("compute global constants",true)); + if(!params.is_null()) { + Teuchos::ParameterList& params_sublist = params->sublist("matrixmatrix: kernel params",false); + Teuchos::ParameterList& labelList_subList = labelList.sublist("matrixmatrix: kernel params",false); + int mm_optimization_core_count = 3000; + mm_optimization_core_count = params_sublist.get("MM_TAFC_OptimizationCoreCount",mm_optimization_core_count); + int foo = params->get("MM_TAFC_OptimizationCoreCount",mm_optimization_core_count); + if(fooget("compute global constants",true)); + } export_type exporter = export_type(*Pprime->getGraph()->getImporter()); Actemp->exportAndFillComplete(Acprime, exporter, diff --git a/packages/tpetra/core/src/Tpetra_CrsMatrix_def.hpp b/packages/tpetra/core/src/Tpetra_CrsMatrix_def.hpp index e706a7de7638..f53890f21cbd 100644 --- a/packages/tpetra/core/src/Tpetra_CrsMatrix_def.hpp +++ b/packages/tpetra/core/src/Tpetra_CrsMatrix_def.hpp @@ -90,8 +90,8 @@ namespace { // (anonymous) const ::Teuchos::EReductionType op, const Teuchos::Comm& comm) { - Kokkos::View localView (&localValue); - Kokkos::View globalView (&globalValue); + Kokkos::View > localView (&localValue,1); + Kokkos::View > globalView (&globalValue, 1); return ::Tpetra::Details::iallreduce (localView, globalView, op, comm); } diff --git a/packages/tpetra/core/src/Tpetra_Import_Util2.hpp b/packages/tpetra/core/src/Tpetra_Import_Util2.hpp index ad2ac6db8517..fdab926a8885 100644 --- a/packages/tpetra/core/src/Tpetra_Import_Util2.hpp +++ b/packages/tpetra/core/src/Tpetra_Import_Util2.hpp @@ -54,6 +54,7 @@ #include "Tpetra_Util.hpp" #include "Tpetra_Distributor.hpp" #include "Tpetra_Details_reallocDualViewIfNeeded.hpp" +#include "Tpetra_Details_MpiTypeTraits.hpp" #include "Tpetra_Vector.hpp" #include "Kokkos_DualView.hpp" #include @@ -383,7 +384,7 @@ reverseNeighborDiscovery(const CrsMatrix::getType(rec_bptr[0]), ProcsTo[i], recvData_MPI_Tag, rawComm, @@ -397,7 +398,7 @@ reverseNeighborDiscovery(const CrsMatrix::getType(send_bptr[0]), ProcsFrom[ii], sendData_MPI_Tag, rawComm,