diff --git a/src/elasticity/materials/materials.hpp b/src/elasticity/materials/materials.hpp index 741ece3852e08d28ef6b53d8cffa6e3b3432ecad..fa7f325d650164ee4566f38a27762dfd6864f556 100644 --- a/src/elasticity/materials/materials.hpp +++ b/src/elasticity/materials/materials.hpp @@ -127,9 +127,11 @@ namespace mat { + sqrt(gamma[0]) * (One - Product(Q[0], Q[0])); return AD; } else if (name == "Quarteroni2") { - AD = (1 / gamma[0]) * Product(Q[0], Q[0]) - + scale_gamma * sqrt(gamma[0]) * Product(Q[1], Q[1]) - + (sqrt(gamma[0]) / scale_gamma) * Product(Q[2], Q[2]); + if (1+gamma[0] < 0) + return One; + AD = (1 / (1+gamma[0])) * Product(Q[0], Q[0]) + + scale_gamma * sqrt(1+gamma[0]) * Product(Q[1], Q[1]) + + (sqrt(1+gamma[0]) / scale_gamma) * Product(Q[2], Q[2]); return AD; } else if (name == "") { AD = One - gamma[0] / (1 + gamma[0]) * Product(Q[0], Q[0])