From 0004a0ef0de23970a3330557e7e54fc367680f57 Mon Sep 17 00:00:00 2001
From: Timo Koch <timo.koch@iws.uni-stuttgart.de>
Date: Fri, 12 Jun 2020 10:54:50 +0200
Subject: [PATCH] [test] Make transformation more natural: first rotate then
 scale and translate

---
 test/common/geometry/transformation.hh | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/test/common/geometry/transformation.hh b/test/common/geometry/transformation.hh
index a72957687f..97be29c097 100644
--- a/test/common/geometry/transformation.hh
+++ b/test/common/geometry/transformation.hh
@@ -49,7 +49,6 @@ auto make1DTransformation(const ctype scale,
     return [=](Dune::FieldVector<ctype, 1> p){
         p *= scale;
         p.axpy(scale, translate);
-        auto tp = p;
         return p;
     };
 }
@@ -76,12 +75,11 @@ auto make2DTransformation(const ctype scale,
     const ctype sinAngle = sin(rotationAngle);
     const ctype cosAngle = cos(rotationAngle);
     return [=](Dune::FieldVector<ctype, 2> p){
-        p *= scale;
-        p.axpy(scale, translate);
         auto tp = p;
         tp[0] = p[0]*cosAngle-p[1]*sinAngle;
         tp[1] = p[0]*sinAngle+p[1]*cosAngle;
-        return tp;
+        tp *= scale;
+        return tp.axpy(scale, translate);
     };
 }
 
@@ -109,12 +107,12 @@ auto make3DTransformation(const ctype scale,
     const ctype sinAngle = sin(rotationAngle);
     const ctype cosAngle = cos(rotationAngle);
     return [=](Dune::FieldVector<ctype, 3> p){
-        p *= scale;
-        p.axpy(scale, translate);
         auto tp = p;
         tp *= cosAngle;
         tp.axpy(sinAngle, Dumux::crossProduct({rotationAxis}, p));
-        return tp.axpy((1.0-cosAngle)*(rotationAxis*p), rotationAxis);
+        tp.axpy((1.0-cosAngle)*(rotationAxis*p), rotationAxis);
+        tp *= scale;
+        return tp.axpy(scale, translate);
     };
 }
 
-- 
GitLab