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