From 0a8e8561bf4fe049c40744edcb2dc2d63ba89153 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Tue, 10 May 2011 16:27:51 +0000
Subject: [PATCH] fix getNumValues for non isoparametric case

---
 Post/PViewDataGModel.cpp | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/Post/PViewDataGModel.cpp b/Post/PViewDataGModel.cpp
index d88ff23ff2..ecba42296c 100644
--- a/Post/PViewDataGModel.cpp
+++ b/Post/PViewDataGModel.cpp
@@ -456,7 +456,11 @@ int PViewDataGModel::getNumComponents(int step, int ent, int ele)
 
 int PViewDataGModel::getNumValues(int step, int ent, int ele)
 {
-  if(_type == ElementNodeData || _type == NodeData){
+  if(_type == ElementNodeData){
+    MElement *e = _getElement(step, ent, ele);
+    return _steps[step]->getMult(e->getNum()) * getNumComponents(step, ent, ele);
+  }
+  else if(_type == NodeData){
     return getNumNodes(step, ent, ele) * getNumComponents(step, ent, ele);
   }
   else if(_type == ElementData){
@@ -492,8 +496,8 @@ void PViewDataGModel::getValue(int step, int ent, int ele, int nod, int comp, do
   switch(_type){
   case NodeData:
     {
-    int num = _getNode(e, nod)->getNum();
-    val = _steps[step]->getData(num)[comp];
+      int num = _getNode(e, nod)->getNum();
+      val = _steps[step]->getData(num)[comp];
     }
     break;
   case ElementNodeData:
@@ -513,8 +517,8 @@ void PViewDataGModel::setValue(int step, int ent, int ele, int nod, int comp, do
   switch(_type){
   case NodeData:
     {
-    int num = _getNode(e, nod)->getNum();
-    _steps[step]->getData(num)[comp] = val;
+      int num = _getNode(e, nod)->getNum();
+      _steps[step]->getData(num)[comp] = val;
     }
     break;
   case ElementNodeData:
-- 
GitLab