diff --git a/dune/istl/paamg/test/hierarchytest.cc b/dune/istl/paamg/test/hierarchytest.cc index fcd0dc60afd29171c68b63f4435602419851d301..9bacb65c5d80fb7f3e05e4206e3c0d9f116c534c 100644 --- a/dune/istl/paamg/test/hierarchytest.cc +++ b/dune/istl/paamg/test/hierarchytest.cc @@ -15,7 +15,11 @@ int main(int argc, char** argv) { MPI_Init(&argc, &argv); - const int BS=1, N=10; + const int BS=1; + int N=10; + + if(argc>1) + N = atoi(argv[1]); int procs, rank; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -44,16 +48,11 @@ int main(int argc, char** argv) remoteIndices.rebuild<false>(); - typedef Dune::Interface Interface; - - Interface interface; - - typedef Dune::EnumItem<GridFlag,GridAttributes::overlap> OverlapFlags; + typedef Dune::NegateSet<Communication::OwnerSet> OverlapFlags; typedef Dune::OverlappingSchwarzOperator<BCRSMat,Vector,Vector,Communication> Operator; typedef Dune::Amg::MatrixHierarchy<Operator,Communication> Hierarchy; typedef Dune::Amg::Hierarchy<Vector> VHierarchy; - interface.build(remoteIndices, Dune::NegateSet<OverlapFlags>(), OverlapFlags()); Operator op(mat, pinfo); Hierarchy hierarchy(op, pinfo); VHierarchy vh(b); @@ -62,15 +61,19 @@ int main(int argc, char** argv) Criterion; Criterion criterion(100,4); + Dune::Timer timer; hierarchy.build<OverlapFlags>(criterion); hierarchy.coarsenVector(vh); + std::cout<<"Building hierarchy took "<<timer.elapsed()<<std::endl; std::cout<<"=== Vector hierarchy has "<<vh.levels()<<" levels! ==="<<std::endl; + timer.reset(); hierarchy.recalculateGalerkin(OverlapFlags()); + std::cout<<"Recalculation took "<<timer.elapsed()<<std::endl; std::vector<std::size_t> data; hierarchy.getCoarsestAggregatesOnFinest(data);