From d2aea60337d46e1d8a5107b73f071c1a5793d6ed Mon Sep 17 00:00:00 2001
From: Thomas Toulorge <thomas.toulorge@mines-paristech.fr>
Date: Wed, 8 Mar 2017 14:21:33 +0000
Subject: [PATCH] Fixed CondNumBasis for pyramids (condition number now
 evaluated at mapping nodes except top vertex)

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

diff --git a/Numeric/CondNumBasis.cpp b/Numeric/CondNumBasis.cpp
index f145571840..1476b9418c 100644
--- a/Numeric/CondNumBasis.cpp
+++ b/Numeric/CondNumBasis.cpp
@@ -323,7 +323,9 @@ CondNumBasis::CondNumBasis(int tag, int cnOrder) :
   }
   const bool serendip = false;
 
-  FuncSpaceData data = ( ElementType::ParentTypeFromTag(tag) == TYPE_PYR )? FuncSpaceData(true, tag, true, _condNumOrder+1, _condNumOrder, &serendip) : FuncSpaceData(true, tag, _condNumOrder, &serendip);
+  FuncSpaceData data = (ElementType::ParentTypeFromTag(tag) == TYPE_PYR) ?
+      FuncSpaceData(true, tag, true, 1, _condNumOrder-1, &serendip) :
+      FuncSpaceData(true, tag, _condNumOrder, &serendip);
 
   fullMatrix<double> lagPoints;                                  // Sampling points
   gmshGeneratePoints(data, lagPoints);
@@ -386,7 +388,7 @@ int CondNumBasis::condNumOrder(int parentType, int order)
     case TYPE_TET : return (order == 1) ? 0 : order;
     case TYPE_PRI : return order;
     case TYPE_HEX : return order;
-    case TYPE_PYR : return (order == 1) ? 0 : order;
+    case TYPE_PYR : return order;
     case TYPE_TRIH : return 0;
     default :
       Msg::Error("Unknown element type %d, return order 0", parentType);
-- 
GitLab