From 2c102dffdc09b793a1c1e44dcf7153583ba26884 Mon Sep 17 00:00:00 2001
From: Jean-Francois Remacle <jean-francois.remacle@uclouvain.be>
Date: Sat, 10 Jan 2009 12:16:08 +0000
Subject: [PATCH] *** empty log message ***

---
 Numeric/gmshElasticity.cpp |  5 +++
 Post/PViewDataGModelIO.cpp | 82 ++++++++++++++++++++++++--------------
 2 files changed, 58 insertions(+), 29 deletions(-)

diff --git a/Numeric/gmshElasticity.cpp b/Numeric/gmshElasticity.cpp
index 15da29b6d7..fa1a54e718 100644
--- a/Numeric/gmshElasticity.cpp
+++ b/Numeric/gmshElasticity.cpp
@@ -74,3 +74,8 @@ void gmshElasticityTerm::elementMatrix(MElement *e, Double_Matrix & m) const
     m.blas_dgemm(BTH, B, weight * detJ, 1.);
   } 
 }
+
+
+
+
+
diff --git a/Post/PViewDataGModelIO.cpp b/Post/PViewDataGModelIO.cpp
index f39f2de6dd..9a0344dd5b 100644
--- a/Post/PViewDataGModelIO.cpp
+++ b/Post/PViewDataGModelIO.cpp
@@ -112,10 +112,10 @@ bool PViewDataGModel::writeMSH(std::string fileName, bool binary)
     return false;
   }
 
-  if(_type != NodeData){
-    Msg::Error("Can only export node-based datasets for now");
-    return false;
-  }
+  //  if(_type != NodeData){
+  //    Msg::Error("Can only export node-based datasets for now");
+  //    return false;
+  //  }
 
   GModel *model = _steps[0]->getModel();
 
@@ -135,32 +135,56 @@ bool PViewDataGModel::writeMSH(std::string fileName, bool binary)
     for(int i = 0; i < _steps[step]->getNumData(); i++)
       if(_steps[step]->getData(i)) numNodes++;
     if(numNodes){
-      fprintf(fp, "$NodeData\n");
-      fprintf(fp, "1\n\"%s\"\n", getName().c_str());
-      fprintf(fp, "1\n%.16g\n", _steps[step]->getTime());
-      fprintf(fp, "3\n%d\n%d\n%d\n", step, numComp, numNodes);
-      for(int i = 0; i < _steps[step]->getNumData(); i++){
-        if(_steps[step]->getData(i)){
-          MVertex *v = _steps[step]->getModel()->getMeshVertexByTag(i);
-          if(!v){
-            Msg::Error("Unknown vertex %d in data", i);
-            return false;
-          }
-          int num = v->getIndex();
-          if(binary){
-            fwrite(&num, sizeof(int), 1, fp);
-            fwrite(_steps[step]->getData(i), sizeof(double), numComp, fp);
-          }
-          else{
-            fprintf(fp, "%d", num);
-            for(int k = 0; k < numComp; k++)
-              fprintf(fp, " %.16g", _steps[step]->getData(i)[k]);
-            fprintf(fp, "\n");
-          }
-        }
+      if (_type == NodeData){
+	fprintf(fp, "$NodeData\n");
+	fprintf(fp, "1\n\"%s\"\n", getName().c_str());
+	fprintf(fp, "1\n%.16g\n", _steps[step]->getTime());
+	fprintf(fp, "3\n%d\n%d\n%d\n", step, numComp, numNodes);
+	for(int i = 0; i < _steps[step]->getNumData(); i++){
+	  if(_steps[step]->getData(i)){
+	    MVertex *v = _steps[step]->getModel()->getMeshVertexByTag(i);
+	    if(!v){
+	      Msg::Error("Unknown vertex %d in data", i);
+	      return false;
+	    }
+	    int num = v->getIndex();
+	    if(binary){
+	      fwrite(&num, sizeof(int), 1, fp);
+	      fwrite(_steps[step]->getData(i), sizeof(double), numComp, fp);
+	    }
+	    else{
+	      fprintf(fp, "%d", num);
+	      for(int k = 0; k < numComp; k++)
+		fprintf(fp, " %.16g", _steps[step]->getData(i)[k]);
+	      fprintf(fp, "\n");
+	    }
+	  }
+	}
+	if(binary) fprintf(fp, "\n");
+	fprintf(fp, "$EndNodeData\n");
+      }
+      else{
+    	fprintf(fp, "$ElementData\n");
+	fprintf(fp, "1\n\"%s\"\n", getName().c_str());
+	fprintf(fp, "1\n%.16g\n", _steps[step]->getTime());
+	fprintf(fp, "3\n%d\n%d\n%d\n", step, numComp, numNodes);
+	for(int i = 0; i < _steps[step]->getNumData(); i++){
+	  if(_steps[step]->getData(i)){
+	    if(binary){
+	      fwrite(&i, sizeof(int), 1, fp);
+	      fwrite(_steps[step]->getData(i), sizeof(double), numComp, fp);
+	    }
+	    else{
+	      fprintf(fp, "%d", i);
+	      for(int k = 0; k < numComp; k++)
+		fprintf(fp, " %.16g", _steps[step]->getData(i)[k]);
+	      fprintf(fp, "\n");
+	    }
+	  }
+	}
+	if(binary) fprintf(fp, "\n");
+	fprintf(fp, "$EndElementData\n");
       }
-      if(binary) fprintf(fp, "\n");
-      fprintf(fp, "$EndNodeData\n");
     }
   }
     
-- 
GitLab