From 9e2d27fdf41b80d1bd9b4cd81819511945535178 Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Mon, 18 Oct 2010 14:44:58 +0000
Subject: [PATCH] revert patches 6432 and 6437.  I'll introduce a new method
 for a basis of the normal bundle

[[Imported from SVN: r6450]]
---
 dune/gfe/unitvector.hh | 18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)

diff --git a/dune/gfe/unitvector.hh b/dune/gfe/unitvector.hh
index fc67cf6f..e7661110 100644
--- a/dune/gfe/unitvector.hh
+++ b/dune/gfe/unitvector.hh
@@ -97,16 +97,11 @@ public:
      /** \brief The exponential map */
     static UnitVector exp(const UnitVector& p, const TangentVector& v) {
 
-        Dune::FieldMatrix<double,N,N> frame = p.orthonormalFrame();
+        Dune::FieldMatrix<double,N-1,N> frame = p.orthonormalFrame();
 
         EmbeddedTangentVector ev;
-
-        // This is frame.mtv for the matrix consisting of the first N-1 rows
-        for( size_t i = 0; i < N; ++i ) {
-            ev[i] = 0;
-            for( size_t j = 0; j < N-1; ++j )
-                ev[i] += frame[j][i] * v[j];
-        }
+        frame.mtv(v,ev);
+            
         return exp(p,ev);
     }
 
@@ -292,16 +287,13 @@ public:
 
     This basis is of course not globally continuous.
     */
-    Dune::FieldMatrix<double,N,N> orthonormalFrame() const {
+    Dune::FieldMatrix<double,N-1,N> orthonormalFrame() const {
 
-        Dune::FieldMatrix<double,N,N> result;
+        Dune::FieldMatrix<double,N-1,N> result;
         
         if (N==2) {
-            // spans the tangent space
             result[0][0] = -data_[1];
             result[0][1] =  data_[0];
-            // spans the normal space
-            result[1]    =  data_;
         } else
             DUNE_THROW(Dune::NotImplemented, "orthonormalFrame for N!=2!");
         
-- 
GitLab