From 3defd9eb21b5d2eb62f55a05023615674eec8eac Mon Sep 17 00:00:00 2001
From: Oliver Sander <oliver.sander@tu-dresden.de>
Date: Thu, 4 Oct 2018 11:46:54 +0200
Subject: [PATCH] Bugfix: H1-distance between SO(3)-valued functions was
 computed wrongly

'Only' a stupid typo: '=' instead of '+='.
---
 src/compute-disc-error.cc | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/compute-disc-error.cc b/src/compute-disc-error.cc
index 7f3cde11..2ae7ec0d 100644
--- a/src/compute-disc-error.cc
+++ b/src/compute-disc-error.cc
@@ -317,8 +317,8 @@ void measureDiscreteEOC(const GridView gridView,
             for (int k=0; k<dim; k++)
               for (int l=0; l<4; l++)
               {
-                refDerivative[i][j][k] = derivativeQuaternionToMatrixRef[i][j][l] * referenceDerQuat[l][k];
-                numDerivative[i][j][k] = derivativeQuaternionToMatrixNum[i][j][l] * numericalDerQuat[l][k];
+                refDerivative[i][j][k] += derivativeQuaternionToMatrixRef[i][j][l] * referenceDerQuat[l][k];
+                numDerivative[i][j][k] += derivativeQuaternionToMatrixNum[i][j][l] * numericalDerQuat[l][k];
               }
 
         auto derDiff = refDerivative - numDerivative;  // compute the difference
@@ -511,8 +511,8 @@ void measureAnalyticalEOC(const GridView gridView,
             for (int k=0; k<dim; k++)
               for (int l=0; l<blocksize; l++)
               {
-                numDerivative[i][j][k] = derivativeQuaternionToMatrixNum[i][j][l] * num_di[l][k];
-                refDerivative[i][j][k] = derivativeQuaternionToMatrixRef[i][j][l] * ref_di[l][k];
+                numDerivative[i][j][k] += derivativeQuaternionToMatrixNum[i][j][l] * num_di[l][k];
+                refDerivative[i][j][k] += derivativeQuaternionToMatrixRef[i][j][l] * ref_di[l][k];
               }
 
         // integrate error
-- 
GitLab