diff --git a/AMDiS/src/VtkWriter.cc b/AMDiS/src/VtkWriter.cc index 885c53e3377b2fe232ccc5468f2283f2cb540b92..c2f06d658693603694e7223e9bf612aca128b1a8 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 52ef3184f29e3ede98e4e2d62cea690a50740819..f89271c38c9a6e71f4a69b7b0d25d3a2e9bc2698 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);