From 93c8dfcf954f89dd35049ea9423a26d3aa09d3ee Mon Sep 17 00:00:00 2001 From: Lisa Julia Nebel <lisa_julia.nebel@tu-dresden.de> Date: Mon, 27 Apr 2020 14:57:21 +0200 Subject: [PATCH] Repair damping parameter --- dune/elasticity/common/trustregionsolver.cc | 4 +++- dune/elasticity/common/trustregionsolver.hh | 6 +++++- problems/finite-strain-elasticity-bending.parset | 3 +++ src/finite-strain-elasticity.cc | 4 +++- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/dune/elasticity/common/trustregionsolver.cc b/dune/elasticity/common/trustregionsolver.cc index 0d1da51..304e284 100644 --- a/dune/elasticity/common/trustregionsolver.cc +++ b/dune/elasticity/common/trustregionsolver.cc @@ -39,7 +39,8 @@ setup(const typename BasisType::GridView::Grid& grid, int nu1, int nu2, int baseIterations, - double baseTolerance) + double baseTolerance, + double damping) { grid_ = &grid; @@ -53,6 +54,7 @@ setup(const typename BasisType::GridView::Grid& grid, ignoreNodes_ = std::make_shared<Dune::BitSetVector<blocksize>>(dirichletNodes); baseIterations_ = baseIterations; baseTolerance_ = baseTolerance; + damping_ = damping; int numLevels = grid_->maxLevel()+1; diff --git a/dune/elasticity/common/trustregionsolver.hh b/dune/elasticity/common/trustregionsolver.hh index d819a2a..2043fb3 100644 --- a/dune/elasticity/common/trustregionsolver.hh +++ b/dune/elasticity/common/trustregionsolver.hh @@ -79,7 +79,8 @@ public: int nu1, int nu2, int baseIterations, - double baseTolerance); + double baseTolerance, + double damping); void setIgnoreNodes(const Dune::BitSetVector<blocksize>& ignoreNodes) { @@ -119,6 +120,9 @@ protected: /** \brief Error tolerance of the multigrid QP solver */ double innerTolerance_; + /** \brief Damping for the smoothers in the multigrid QP solver */ + double damping_; + /** \brief Maximum number of base solver iterations */ int baseIterations_; diff --git a/problems/finite-strain-elasticity-bending.parset b/problems/finite-strain-elasticity-bending.parset index 03cebdb..3eaf945 100644 --- a/problems/finite-strain-elasticity-bending.parset +++ b/problems/finite-strain-elasticity-bending.parset @@ -35,6 +35,9 @@ nu1 = 3 # Number of postsmoothing steps nu2 = 3 +# Damping for the smoothers of the multigrid solver +damping = 1.0 + # Number of coarse grid corrections mu = 1 diff --git a/src/finite-strain-elasticity.cc b/src/finite-strain-elasticity.cc index e5dccd8..28e4970 100644 --- a/src/finite-strain-elasticity.cc +++ b/src/finite-strain-elasticity.cc @@ -109,6 +109,7 @@ int main (int argc, char *argv[]) try const int baseIterations = parameterSet.get<int>("baseIt"); const double mgTolerance = parameterSet.get<double>("mgTolerance"); const double baseTolerance = parameterSet.get<double>("baseTolerance"); + const double damping = parameterSet.get<double>("damping"); std::string resultPath = parameterSet.get("resultPath", ""); // /////////////////////////////////////// @@ -333,7 +334,8 @@ int main (int argc, char *argv[]) try mgTolerance, mu, nu1, nu2, baseIterations, - baseTolerance + baseTolerance, + damping ); //////////////////////////////////////////////////////// -- GitLab