From 7b72b517a8a474f7d929f4a40ad19ee09a5db9cf Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Wed, 23 Apr 2014 14:35:58 +0000 Subject: [PATCH] Implement distributed energy computation [[Imported from SVN: r9710]] --- dune/gfe/riemanniantrsolver.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dune/gfe/riemanniantrsolver.cc b/dune/gfe/riemanniantrsolver.cc index e40a4cf5..0f57b759 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() -- GitLab