diff --git a/src/rodsolver.cc b/src/rodsolver.cc index 869f4549cfc0e2320d71dda61b9db8def7fd6058..5654066e31d6b0cc18724683b6eec66d496691e2 100644 --- a/src/rodsolver.cc +++ b/src/rodsolver.cc @@ -49,6 +49,7 @@ template <class GridType> void RodSolver<GridType>::setup(const GridType& grid, const RodAssembler<GridType>* rodAssembler, const SolutionType& x, + double tolerance, int maxTrustRegionSteps, double initialTrustRegionRadius, int multigridIterations, @@ -65,6 +66,7 @@ void RodSolver<GridType>::setup(const GridType& grid, grid_ = &grid; rodAssembler_ = rodAssembler; x_ = x; + tolerance_ = tolerance; maxTrustRegionSteps_ = maxTrustRegionSteps; initialTrustRegionRadius_ = initialTrustRegionRadius; multigridIterations_ = multigridIterations; @@ -322,7 +324,7 @@ void RodSolver<GridType>::solve() printf("infinity norm of the correction: %g\n", corr.infinity_norm()); - if (corr.infinity_norm() < 1e-5) { + if (corr.infinity_norm() < tolerance_) { std::cout << "CORRECTION IS SMALL ENOUGH" << std::endl; break; } @@ -344,12 +346,6 @@ void RodSolver<GridType>::solve() } -#if 0 - std::cout << "newIterate: \n"; - for (int j=0; j<newIterate.size(); j++) - std::cout << newIterate[j] << std::endl; -#endif - /** \todo Don't always recompute oldEnergy */ double oldEnergy = rodAssembler_->computeEnergy(x_); double energy = rodAssembler_->computeEnergy(newIterate); diff --git a/src/rodsolver.hh b/src/rodsolver.hh index 4b8dcc496b87fba2daad1ac3754170127c24672e..ffe9b6b78606129ce8fa26f197909cf95ce4fc62 100644 --- a/src/rodsolver.hh +++ b/src/rodsolver.hh @@ -35,6 +35,7 @@ public: void setup(const GridType& grid, const RodAssembler<GridType>* rodAssembler, const SolutionType& x, + double tolerance, int maxTrustRegionSteps, double initialTrustRegionRadius, int multigridIterations, @@ -65,6 +66,9 @@ protected: /** \brief The initial trust-region radius in the maximum-norm */ double initialTrustRegionRadius_; + /** \brief Tolerance of the trust-region solver */ + double tolerance_; + /** \brief Maximum number of trust-region steps */ int maxTrustRegionSteps_;