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