diff --git a/dune/elasticity/materials/mooneyrivlindensity.hh b/dune/elasticity/materials/mooneyrivlindensity.hh index cbad67835dcaf804927fe52bbfc406bf32fb15a4..7317242e96e550e0ab3b39c2db85d46c0f968603 100644 --- a/dune/elasticity/materials/mooneyrivlindensity.hh +++ b/dune/elasticity/materials/mooneyrivlindensity.hh @@ -130,7 +130,7 @@ public: { //mooneyrivlin_energy is "square" field_type detFMinus1 = detF - 1; - return strainEnergy + mooneyrivlin_k* detFMinus1 * detFMinus1; + return strainEnergy + 0.5 * mooneyrivlin_k* detFMinus1 * detFMinus1; } } } diff --git a/test/mooneyrivlintest.cc b/test/mooneyrivlintest.cc index b69f5eb4151ad60a4236740d79004266a0ef1718..73fcfdd6b47e65f8618f95d620b4f826370e42b7 100644 --- a/test/mooneyrivlintest.cc +++ b/test/mooneyrivlintest.cc @@ -149,10 +149,10 @@ int main (int argc, char *argv[]) parameters["mooneyrivlin_k"] = "75e+6"; parameters["mooneyrivlin_energy"] = "square"; - double expectedEnergy = 177758377; - double expectedGradientTwoNorm = 2.13791422e+09; - double expectedGradientInfinityNorm = 599188506; - double expectedMatrixFrobeniusNorm = 1.62529884e+11; + double expectedEnergy = 167636683; + double expectedGradientTwoNorm = 2.10685704e+09; + double expectedGradientInfinityNorm = 589695526; + double expectedMatrixFrobeniusNorm = 1.61941167e+11; int testSquare = assembleAndCompare(basis, parameters, x, expectedEnergy, expectedGradientTwoNorm, expectedGradientInfinityNorm, expectedMatrixFrobeniusNorm); parameters["mooneyrivlin_energy"] = "log";