diff --git a/dune/tectonic/globalruinanonlinearity.hh b/dune/tectonic/globalruinanonlinearity.hh index 7e82479c0f70005e3f8c8789103222bca22d36a3..ec0d5702871487edf219e7db8bb3b8922b35d89c 100644 --- a/dune/tectonic/globalruinanonlinearity.hh +++ b/dune/tectonic/globalruinanonlinearity.hh @@ -24,17 +24,17 @@ class GlobalRuinaNonlinearity : public GlobalNonlinearity<Matrix, Vector> { public: GlobalRuinaNonlinearity(Dune::BitSetVector<1> const &frictionalNodes, - ScalarVector const &nodalIntegrals, - FrictionData const &fd) - : restrictions(nodalIntegrals.size()) { + ScalarVector const &weights, FrictionData const &fd) + : restrictions(frictionalNodes.size()) { auto trivialNonlinearity = std::make_shared<Friction>(std::make_shared<TrivialFunction>()); for (size_t i = 0; i < restrictions.size(); ++i) { - restrictions[i] = - frictionalNodes[i][0] - ? std::make_shared<Friction>( - std::make_shared<FrictionPotential>(nodalIntegrals[i], fd)) - : trivialNonlinearity; + if (not frictionalNodes[i][0]) { + restrictions[i] = trivialNonlinearity; + continue; + } + auto const fp = std::make_shared<FrictionPotential>(weights[i], fd); + restrictions[i] = std::make_shared<Friction>(fp); } }