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