From c2f992841eaa27245c164661d08d9d78796340a1 Mon Sep 17 00:00:00 2001
From: Sebastien Blaise <sebastien.blaise@uclouvain.be>
Date: Tue, 27 Oct 2015 07:55:49 +0000
Subject: [PATCH] condNumBasis: fix for pyramidal elements: condNumBasis for
 MSH_PYR_5 uses more than one node

---
 Numeric/CondNumBasis.cpp | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/Numeric/CondNumBasis.cpp b/Numeric/CondNumBasis.cpp
index 0b8d2063c3..cf46578ae8 100644
--- a/Numeric/CondNumBasis.cpp
+++ b/Numeric/CondNumBasis.cpp
@@ -316,17 +316,16 @@ CondNumBasis::CondNumBasis(int tag, int cnOrder) :
     _condNumOrder(cnOrder >= 0 ? cnOrder : condNumOrder(tag))
 {
   const bool serendip = false;
-  FuncSpaceData data(true, tag, _condNumOrder, &serendip);
 
+  FuncSpaceData data = ( ElementType::ParentTypeFromTag(tag) == TYPE_PYR )? FuncSpaceData(true, tag, true, _condNumOrder+2, _condNumOrder, &serendip) : FuncSpaceData(true, tag, _condNumOrder, &serendip);
   _gradBasis = BasisFactory::getGradientBasis(data);
-
   fullMatrix<double> lagPoints;                                  // Sampling points
   gmshGeneratePoints(data, lagPoints);
   _nCondNumNodes = lagPoints.size1();
   _nMapNodes = BasisFactory::getNodalBasis(tag)->getNumShapeFunctions();
 
   // Store shape function gradients of mapping at condition number nodes
-  _gradBasis = BasisFactory::getGradientBasis(tag, _condNumOrder);
+  _gradBasis = BasisFactory::getGradientBasis(data);
 
   // Compute shape function gradients of primary mapping at barycenter,
   // in order to compute normal to straight element
-- 
GitLab