diff --git a/dune/gfe/cosseratenergystiffness.hh b/dune/gfe/cosseratenergystiffness.hh index dbf46d09d041fefc73d2d4fd842b94f47134fe6d..de1a5e91502908ac4b351a7e68efe3562c45a2d1 100644 --- a/dune/gfe/cosseratenergystiffness.hh +++ b/dune/gfe/cosseratenergystiffness.hh @@ -249,11 +249,15 @@ energy(const Entity& element, } // Add the local energy density - energy += weight * thickness_ * quadraticMembraneEnergy(U); - energy += weight * thickness_ * curvatureEnergy(DR); - - if (gridDim!=dim) // extra term for shell elements + if (gridDim==2) { + energy += weight * thickness_ * quadraticMembraneEnergy(U); + energy += weight * thickness_ * curvatureEnergy(DR); energy += weight * std::pow(thickness_,3) / 12.0 * bendingEnergy(R,DR); + } else if (gridDim==3) { + energy += weight * quadraticMembraneEnergy(U); + energy += weight * curvatureEnergy(DR); + } else + DUNE_THROW(Dune::NotImplemented, "CosseratEnergyStiffness for 1d grids"); }