diff --git a/dune/tectonic/frictiondata.hh b/dune/tectonic/frictiondata.hh index 656683f90283355a77e9855677270fe58c95ef25..8cc724698a9c163e7a5c157dbef4a2179e1f3817 100644 --- a/dune/tectonic/frictiondata.hh +++ b/dune/tectonic/frictiondata.hh @@ -9,7 +9,6 @@ struct FrictionData { a(parset.get<double>("a")), b(parset.get<double>("b")), mu0(parset.get<double>("mu0")), - mumin(parset.get<double>("mumin")), normalStress(normalStress) {} double const L; @@ -17,7 +16,6 @@ struct FrictionData { double const a; double const b; double const mu0; - double const mumin; double const normalStress; }; #endif diff --git a/dune/tectonic/frictionpotential.hh b/dune/tectonic/frictionpotential.hh index f4baa6245589f5a0587b628b74aa29347622f475..9498740fdee1ca919349ac3f77b44dae58ee981c 100644 --- a/dune/tectonic/frictionpotential.hh +++ b/dune/tectonic/frictionpotential.hh @@ -38,7 +38,7 @@ class FrictionPotential : public FrictionPotentialWrapper { double differential(double V) const { assert(V >= 0.0); if (V <= V_cutoff) - return fd.mumin; + return 0.0; return weightTimesNormalStress * fd.a * (std::log(V) - logV_m); } @@ -62,9 +62,10 @@ class FrictionPotential : public FrictionPotentialWrapper { } void updateLogState(double logState) { - logV_m = std::log(fd.V0) + - (-(fd.mu0 + fd.b * (logState + std::log(fd.V0 / fd.L))) / fd.a); - V_cutoff = std::exp(logV_m + fd.mumin / fd.a); + double const tmp = + (fd.mu0 + fd.b * (logState + std::log(fd.V0 / fd.L))) / fd.a; + logV_m = std::log(fd.V0) - tmp; + V_cutoff = fd.V0 / std::exp(tmp); } private: diff --git a/src/one-body-sample.parset b/src/one-body-sample.parset index 7a24492348484b967266e467be3631f7a5d6cea5..5f61cf30e857cfa8f21d6a0221c6d2b806e70c9d 100644 --- a/src/one-body-sample.parset +++ b/src/one-body-sample.parset @@ -17,7 +17,6 @@ bulkViscosity = 0 [boundary.friction] mu0 = 0.6 -mumin = 0.0 a = 0.010 b = 0.015 V0 = 1e-6