TEUCHOS_UNIT_TEST_TEMPLATE_4_DECL(ParameterListInterpreter, SetParameterList, Scalar, LocalOrdinal, GlobalOrdinal, Node) { # include <MueLu_UseShortNames.hpp> MUELU_TESTING_SET_OSTREAM; MUELU_TESTING_LIMIT_SCOPE(Scalar,GlobalOrdinal,Node); #if defined(HAVE_MUELU_TPETRA) && defined(HAVE_MUELU_EPETRA) && defined(HAVE_MUELU_IFPACK) && defined(HAVE_MUELU_IFPACK2) && defined(HAVE_MUELU_AMESOS) && defined(HAVE_MUELU_AMESOS2) RCP<Matrix> A = TestHelpers::TestFactory<SC, LO, GO, NO>::Build1DPoisson(99); RCP<const Teuchos::Comm<int> > comm = TestHelpers::Parameters::getDefaultComm(); ArrayRCP<std::string> fileList = TestHelpers::GetFileList(std::string("ParameterList/ParameterListInterpreter/"), std::string(".xml")); for(int i=0; i< fileList.size(); i++) { out << "Processing file: " << fileList[i] << std::endl; ParameterListInterpreter mueluFactory("ParameterList/ParameterListInterpreter/" + fileList[i],*comm); RCP<Hierarchy> H = mueluFactory.CreateHierarchy(); H->GetLevel(0)->Set("A", A); mueluFactory.SetupHierarchy(*H); //TODO: check no unused parameters //TODO: check results of Iterate() } # else out << "Skipping test because some required packages are not enabled (Tpetra, Epetra, EpetraExt, Ifpack, Ifpack2, Amesos, Amesos2)." << std::endl; # endif }
TEUCHOS_UNIT_TEST(MLParameterListInterpreter, SetParameterList) { //TODO: this test can be done at compilation time #if !defined(HAVE_MUELU_EPETRA) or !defined(HAVE_MUELU_IFPACK) or !defined(HAVE_MUELU_AMESOS) if (TestHelpers::Parameters::getLib() == Xpetra::UseEpetra) { out << "Test skipped (dependencies not available)" << std::endl; return; } #endif #if !defined(HAVE_MUELU_TPETRA) or !defined(HAVE_MUELU_IFPACK2) or !defined(HAVE_MUELU_AMESOS2) if (TestHelpers::Parameters::getLib() == Xpetra::UseTpetra) { out << "Test skipped (dependencies not available)" << std::endl; return; } #endif RCP<Matrix> A = TestHelpers::TestFactory<SC, LO, GO, NO>::Build1DPoisson(99); Teuchos::ParameterList galeriParameters; galeriParameters.set("nx",99); RCP<MultiVector> coordinates = Galeri::Xpetra::Utils::CreateCartesianCoordinates<SC,LO,GO,Map,MultiVector>("1D", A->getRowMap(), galeriParameters); ArrayRCP<std::string> fileList = TestHelpers::GetFileList(std::string("ParameterList/MLParameterListInterpreter/"), std::string(".xml")); for(int i=0; i< fileList.size(); i++) { out << "Processing file: " << fileList[i] << std::endl; Teuchos::ParameterList myList; myList.set("xml parameter file","ParameterList/MLParameterListInterpreter/" + fileList[i]); Teuchos::ArrayRCP<MultiVector::scalar_type> xcoord=coordinates->getDataNonConst(0); myList.set("x-coordinates",xcoord.get()); MLParameterListInterpreter mueluFactory(myList,A->getRowMap()->getComm()); RCP<Hierarchy> H = mueluFactory.CreateHierarchy(); H->GetLevel(0)->Set<RCP<Matrix> >("A", A); mueluFactory.SetupHierarchy(*H); //TODO: check no unused parameters //TODO: check results of Iterate() } }