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