From 0b1383e4e00aa1e35482b0bb7c4b6af35be49621 Mon Sep 17 00:00:00 2001
From: Simon Praetorius <simon.praetorius@tu-dresden.de>
Date: Wed, 12 May 2010 17:05:12 +0000
Subject: [PATCH] writeFile for WorldVector<DOFVector> and
 DOFVector<WorldVector> added

---
 AMDiS/src/VtkWriter.cc | 38 +++++++++++++++++++++++++++++++++-----
 AMDiS/src/VtkWriter.h  | 11 +++++++++++
 2 files changed, 44 insertions(+), 5 deletions(-)

diff --git a/AMDiS/src/VtkWriter.cc b/AMDiS/src/VtkWriter.cc
index 885c53e3..c2f06d65 100644
--- a/AMDiS/src/VtkWriter.cc
+++ b/AMDiS/src/VtkWriter.cc
@@ -137,7 +137,7 @@ namespace AMDiS {
 	DataCollector dc(values->getFESpace(), values);
 	std::vector<DataCollector*> dcList(0);
 	dcList.push_back(&dc);
-	VtkWriter::writeFile(dcList,filename,writeParallel);
+	writeFile(dcList,filename,writeParallel);
   };
 
   void VtkWriter::writeFile(std::vector<DOFVector<double>* > &values,
@@ -148,22 +148,50 @@ namespace AMDiS {
 	for(unsigned i=0; i<values.size(); ++i) {
 		dcList.push_back(new DataCollector(values[i]->getFESpace(), values[i]));
 	}
-	VtkWriter::writeFile(dcList,filename,writeParallel);
+	writeFile(dcList,filename,writeParallel);
 	for(unsigned i=0; i<values.size(); ++i) {
     		delete dcList[i];
 	}
   };
 
+  void VtkWriter::writeFile(WorldVector<DOFVector<double>* > &values,
+				std::string filename,
+				bool writeParallel)
+  {
+	std::vector<DataCollector*> dcList(0);
+	for(unsigned i=0; i<static_cast<unsigned>(values.getSize()); ++i) {
+		dcList.push_back(new DataCollector(values[i]->getFESpace(), values[i]));
+	}
+	writeFile(dcList,filename,writeParallel);
+	for(unsigned i=0; i<static_cast<unsigned>(values.getSize()); ++i) {
+    		delete dcList[i];
+	}
+  };
+
+  void VtkWriter::writeFile(DOFVector<WorldVector<double> > *values,
+				std::string filename,
+				bool writeParallel)
+  {
+	WorldVector<DOFVector<double>*> valuesWV;
+	for(unsigned i=0; i<static_cast<unsigned>(valuesWV.getSize()); ++i)
+		valuesWV[i] = new DOFVector<double>(values->getFESpace(), "valuesWV_i");
+	transform(values, &valuesWV);
+	writeFile(valuesWV,filename,writeParallel);
+	for(unsigned i=0; i<static_cast<unsigned>(valuesWV.getSize()); ++i) {
+    		delete valuesWV[i];
+	}
+  };
+
   void VtkWriter::writeFile(SystemVector *values, 
 				std::string filename,
 				bool writeParallel)
   {
 	std::vector<DataCollector*> dcList(0);
-	for(unsigned i=0; i<values->getSize(); ++i) {
+	for(unsigned i=0; i<static_cast<unsigned>(values->getSize()); ++i) {
 		dcList.push_back(new DataCollector(values->getDOFVector(i)->getFESpace(), values->getDOFVector(i)));
 	}
-	VtkWriter::writeFile(dcList,filename,writeParallel);
-	for(unsigned i=0; i<dcList.size(); ++i) {
+	writeFile(dcList,filename,writeParallel);
+	for(unsigned i=0; i<static_cast<unsigned>(dcList.size()); ++i) {
     		delete dcList[i];
 	}
   };
diff --git a/AMDiS/src/VtkWriter.h b/AMDiS/src/VtkWriter.h
index 52ef3184..f89271c3 100644
--- a/AMDiS/src/VtkWriter.h
+++ b/AMDiS/src/VtkWriter.h
@@ -72,6 +72,17 @@ namespace AMDiS {
     static void writeFile(std::vector<DOFVector<double>*> &values,
 			  std::string filename, 
 			  bool writeParallel = true);
+    static void writeFile(WorldVector<DOFVector<double>*> &values,
+			  std::string filename, 
+			  bool writeParallel = true);
+    static void writeFile(DOFVector<WorldVector<double> > *values,
+			  std::string filename, 
+			  bool writeParallel = true);
+    static void writeFile(DOFVector<WorldVector<double> > &values,
+			  std::string filename, 
+			  bool writeParallel = true) {
+      writeFile(&values, filename, writeParallel);
+    }
     static void writeFile(SystemVector *values,
 			  std::string filename, 
 			  bool writeParallel = true);
-- 
GitLab