From 0ebb2e237b002357d2fb5d73fe7a8360a4607b84 Mon Sep 17 00:00:00 2001
From: Lisa Julia Nebel <lisa_julia.nebel@tu-dresden.de>
Date: Thu, 10 Jun 2021 11:31:49 +0200
Subject: [PATCH] Fix the interpolation of the rotational initial dirichlet
 values in cosserat-continuum

---
 src/cosserat-continuum.cc | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/cosserat-continuum.cc b/src/cosserat-continuum.cc
index 19fcf413..5f629917 100644
--- a/src/cosserat-continuum.cc
+++ b/src/cosserat-continuum.cc
@@ -214,6 +214,14 @@ int main (int argc, char *argv[]) try
             lagrange<displacementOrder>()
     ));
 
+    auto orientationPowerBasis = makeBasis(
+        gridView,
+        power<3>(
+            power<3>(
+            lagrange<rotationOrder>()
+        )
+    ));
+
     typedef Dune::Functions::LagrangeBasis<GridView,displacementOrder> DeformationFEBasis;
     typedef Dune::Functions::LagrangeBasis<GridView,rotationOrder> OrientationFEBasis;
 
@@ -425,7 +433,7 @@ int main (int argc, char *argv[]) try
         Dune::Functions::interpolate(deformationPowerBasis, ddV, deformationDirichletValues, deformationDirichletDofs);
     
         BlockVector<FieldMatrix<double,3,3> > dOV;
-        Dune::Functions::interpolate(orientationFEBasis, dOV, orientationDirichletValues, orientationDirichletDofs);
+        Dune::Functions::interpolate(orientationPowerBasis, dOV, orientationDirichletValues);
     
         for (int i = 0; i < compositeBasis.size({0}); i++) {
           if (deformationDirichletDofs[i][0])
-- 
GitLab