diff --git a/dune/gfe/riemanniantrsolver.cc b/dune/gfe/riemanniantrsolver.cc index e70e6649f60d03a8e3e69ce99285c9812fbaad00..8ccf0b9937462c571b2351aac6614ca91a36baa5 100644 --- a/dune/gfe/riemanniantrsolver.cc +++ b/dune/gfe/riemanniantrsolver.cc @@ -403,6 +403,7 @@ void RiemannianTrustRegionSolver<Basis,TargetSpace>::solve() *hessianMatrix_, i==0 // assemble occupation pattern only for the first call ); + std::cout << "Assembly took " << gradientTimer.elapsed() << " sec." << std::endl; rhs *= -1; // The right hand side is the _negative_ gradient @@ -418,11 +419,12 @@ void RiemannianTrustRegionSolver<Basis,TargetSpace>::solve() if ((*mgStep->ignoreNodes_)[j][k]) // global Dirichlet nodes set gradient[j][k] = 0; + if (this->verbosity_ == Solver::FULL and rank==0) { + std::cout << "Gradient operator norm: " << l2Norm_->operator()(gradient) << std::endl; + std::cout << "Gradient norm: " << gradient.two_norm() << std::endl; + } if (this->verbosity_ == Solver::FULL and rank==0) - std::cout << "Gradient norm: " << l2Norm_->operator()(gradient) << std::endl; - - if (this->verbosity_ == Solver::FULL) - std::cout << "Assembly took " << gradientTimer.elapsed() << " sec." << std::endl; + std::cout << "Oveall assembly took " << gradientTimer.elapsed() << " sec." << std::endl; totalAssemblyTime += gradientTimer.elapsed(); // Transfer matrix data @@ -467,8 +469,7 @@ void RiemannianTrustRegionSolver<Basis,TargetSpace>::solve() if (mgStep && solved) corr_global = mgStep->getSol(); - - //std::cout << "Correction: " << std::endl << corr_global << std::endl; + std::cout << "Two norm of the correction: " << corr_global.two_norm() << std::endl; } // Distribute solution diff --git a/src/film-on-substrate.cc b/src/film-on-substrate.cc index 471ea478564f912ead8f141f3acc0c03caf597d9..3c38062ab8bac4f49a8a169e169fa1096ea4f400 100644 --- a/src/film-on-substrate.cc +++ b/src/film-on-substrate.cc @@ -262,10 +262,8 @@ int main (int argc, char *argv[]) try auto neumannBoundary = std::make_shared<BoundaryPatch<GridView>>(gridView, neumannVertices); BoundaryPatch<GridView> surfaceShellBoundary(gridView, surfaceShellVertices); - if (mpiHelper.rank()==0) { - std::cout << "Neumann boundary has " << neumannBoundary->numFaces() << " faces\n"; - std::cout << "Shell boundary has " << surfaceShellBoundary.numFaces() << " faces\n"; - } + std::cout << "On rank " << mpiHelper.rank() << ": Neumann boundary has " << neumannBoundary->numFaces() << " faces\n"; + std::cout << "On rank " << mpiHelper.rank() << ": Shell boundary has " << surfaceShellBoundary.numFaces() << " faces\n"; BitSetVector<1> dirichletNodes(feBasis.size(), false);