diff --git a/dune/gfe/riemanniantrsolver.cc b/dune/gfe/riemanniantrsolver.cc index e40a4cf5bd8c5b975203ca7f3788805ca22be27a..0f57b759815eb8dd014b903c9a8d77e2cbef598d 100644 --- a/dune/gfe/riemanniantrsolver.cc +++ b/dune/gfe/riemanniantrsolver.cc @@ -184,6 +184,8 @@ setup(const GridType& grid, template <class GridType, class TargetSpace> void RiemannianTrustRegionSolver<GridType,TargetSpace>::solve() { + int rank = mpiHelper_.rank(); + MonotoneMGStep<MatrixType,CorrectionType>* mgStep = NULL; // if the inner solver is a monotone multigrid set up a max-norm trust-region @@ -215,6 +217,8 @@ void RiemannianTrustRegionSolver<GridType,TargetSpace>::solve() // ///////////////////////////////////////////////////// double oldEnergy = assembler_->computeEnergy(x_); + oldEnergy = mpiHelper_.getCollectiveCommunication().sum(oldEnergy); + bool recomputeGradientHessian = true; CorrectionType rhs; @@ -225,7 +229,7 @@ void RiemannianTrustRegionSolver<GridType,TargetSpace>::solve() std::cout << x_[j] << std::endl;*/ Dune::Timer totalTimer; - if (this->verbosity_ == Solver::FULL) { + if (this->verbosity_ == Solver::FULL and rank==0) { std::cout << "----------------------------------------------------" << std::endl; std::cout << " Trust-Region Step Number: " << i << ", radius: " << trustRegion.radius()