From cc442a5b4023505a9f82660914953fc17849e3af Mon Sep 17 00:00:00 2001
From: Manuel Weberndorfer <manuel.weberndorfer@id.ethz.ch>
Date: Fri, 30 Jul 2021 16:44:33 +0000
Subject: [PATCH] adapt automatic stress/tangent matrix traits

---
 .../ae108/elements/materialmodels/AutomaticStressTrait.h    | 6 +++---
 .../elements/materialmodels/AutomaticTangentMatrixTrait.h   | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/elements/src/include/ae108/elements/materialmodels/AutomaticStressTrait.h b/elements/src/include/ae108/elements/materialmodels/AutomaticStressTrait.h
index d0d7422a..c66f0df5 100644
--- a/elements/src/include/ae108/elements/materialmodels/AutomaticStressTrait.h
+++ b/elements/src/include/ae108/elements/materialmodels/AutomaticStressTrait.h
@@ -32,13 +32,13 @@ template <class MaterialModel_> struct AutomaticStressTrait {
              const typename MaterialModel::DisplacementGradient &gradient,
              const typename MaterialModel::Time time) const noexcept {
     using size_type = typename MaterialModel::size_type;
-    constexpr auto dimension = MaterialModel::dimension();
 
     typename MaterialModel::Stress result;
 
     auto modified_gradient = gradient;
-    for (auto row = size_type{0}; row < dimension; ++row) {
-      for (auto col = size_type{0}; col < dimension; ++col) {
+    for (auto row = size_type{0}; row < MaterialModel::degrees_of_freedom();
+         ++row) {
+      for (auto col = size_type{0}; col < MaterialModel::dimension(); ++col) {
         result[row][col] = tensor::differentiate(
             [&](const typename MaterialModel::value_type t) {
               modified_gradient[row][col] = t;
diff --git a/elements/src/include/ae108/elements/materialmodels/AutomaticTangentMatrixTrait.h b/elements/src/include/ae108/elements/materialmodels/AutomaticTangentMatrixTrait.h
index b026b223..01f18e5d 100644
--- a/elements/src/include/ae108/elements/materialmodels/AutomaticTangentMatrixTrait.h
+++ b/elements/src/include/ae108/elements/materialmodels/AutomaticTangentMatrixTrait.h
@@ -36,9 +36,9 @@ template <class MaterialModel_> struct AutomaticTangentMatrixTrait {
     typename MaterialModel::TangentMatrix result;
 
     auto modified_gradient = gradient;
-    for (auto i = size_type{0}; i < MaterialModel::dimension(); ++i) {
+    for (auto i = size_type{0}; i < MaterialModel::degrees_of_freedom(); ++i) {
       for (auto j = size_type{0}; j < MaterialModel::dimension(); ++j) {
-        for (auto k = size_type{0}; k < MaterialModel::dimension(); ++k) {
+        for (auto k = size_type{0}; k < MaterialModel::degrees_of_freedom(); ++k) {
           for (auto l = size_type{0}; l < MaterialModel::dimension(); ++l) {
             result[i][j][k][l] = tensor::differentiate(
                 [&](const typename MaterialModel::value_type t) {
-- 
GitLab