From 3712a09ddd531d790771d1a07d78cb091711433e Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Thu, 13 Sep 2012 10:00:49 +0000
Subject: [PATCH] make the order of the higher-order function a parameter

[[Imported from SVN: r8866]]
---
 test/nestednesstest.cc | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/test/nestednesstest.cc b/test/nestednesstest.cc
index 987222b7..4474c626 100644
--- a/test/nestednesstest.cc
+++ b/test/nestednesstest.cc
@@ -31,10 +31,10 @@ double diameter(const std::vector<TargetSpace>& v)
     return d;
 }
 
-template <int domainDim>
+template <int domainDim, int elementOrder>
 std::vector<FieldVector<double,domainDim> > lagrangeNodes(const GeometryType& type)
 {
-    PQkLocalFiniteElementCache<double,double,domainDim,2> feCache;
+    PQkLocalFiniteElementCache<double,double,domainDim,elementOrder> feCache;
     std::vector<FieldVector<double,domainDim> > result(feCache.get(type).localBasis().size());
     
     // evaluate loF at the Lagrange points of the second-order function
@@ -52,15 +52,15 @@ std::vector<FieldVector<double,domainDim> > lagrangeNodes(const GeometryType& ty
 }
 
 
-template <int domainDim, class TargetSpace>
+template <int domainDim, class TargetSpace, int highElementOrder>
 void testNestedness(const LocalGeodesicFEFunction<domainDim,double,typename PQkLocalFiniteElementCache<double,double,domainDim,1>::FiniteElementType, TargetSpace>& loF)
 {
     // Make higher order local gfe function 
-    PQkLocalFiniteElementCache<double,double,domainDim,2> feCache;
-    typedef typename PQkLocalFiniteElementCache<double,double,domainDim,2>::FiniteElementType LocalFiniteElement;
+    PQkLocalFiniteElementCache<double,double,domainDim,highElementOrder> feCache;
+    typedef typename PQkLocalFiniteElementCache<double,double,domainDim,highElementOrder>::FiniteElementType LocalFiniteElement;
     
     // Get the Lagrange nodes of the high-order function
-    std::vector<FieldVector<double,domainDim> > lNodes = lagrangeNodes<domainDim>(loF.type());
+    std::vector<FieldVector<double,domainDim> > lNodes = lagrangeNodes<domainDim,highElementOrder>(loF.type());
     
     // Evaluate low-order function at the high-order nodal values
     std::vector<TargetSpace> nodalValues(lNodes.size());
@@ -140,7 +140,8 @@ void test(const GeometryType& element)
     
         LocalGeodesicFEFunction<domainDim,double,LocalFiniteElement,TargetSpace> f(feCache.get(element),corners);
 
-        testNestedness<domainDim>(f);
+        static const int highElementOrder = 2;
+        testNestedness<domainDim,TargetSpace,highElementOrder>(f);
                 
     }
 
-- 
GitLab