diff --git a/AMDiS/src/io/FileWriter.cc b/AMDiS/src/io/FileWriter.cc index 77e25e6a049f66bd8811d4dc8b4382540d3a1147..84c588faccb0324239db1ce4e924c7178ac79c77 100644 --- a/AMDiS/src/io/FileWriter.cc +++ b/AMDiS/src/io/FileWriter.cc @@ -231,7 +231,7 @@ namespace AMDiS createSubDir > 0); } #endif - Arh3Writer::writeFile(solutionVecs, fn + ".arh"); + Arh3Writer::writeFile(solutionVecs, fn + ".arh", false); } diff --git a/AMDiS/src/io/detail/Arh3Writer.cc b/AMDiS/src/io/detail/Arh3Writer.cc index e421fe10d99d4490b3cb27abcc1f95bcb7eb5c92..b34217adeffeb0cb406638c08b536d96e2d304b6 100644 --- a/AMDiS/src/io/detail/Arh3Writer.cc +++ b/AMDiS/src/io/detail/Arh3Writer.cc @@ -219,7 +219,25 @@ namespace AMDiS { namespace io { TEST_EXIT(nameset.size() == vecs.size()) ("DOFVectors in vecs cannot have idential name. Please check.\n"); - + +#ifdef HAVE_PARALLEL_DOMAIN_AMDIS + if (writeParallel) { + using boost::lexical_cast; + + int sPos = filename.find(".arh"); + TEST_EXIT(sPos >= 0)("Failed to find file postfix!\n"); + string name = filename.substr(0, sPos); + std::vector<int> macroIdx; + + Mesh* mesh_ = mesh ? mesh : vecs[0]->getFeSpace()->getMesh(); + + if (MPI::COMM_WORLD.Get_rank() == 0) + writeParallelFile(name + ".parh", mesh_, false); + + filename = name + "-p" + lexical_cast<string>(MPI::COMM_WORLD.Get_rank()) + "-.arh"; + } +#endif + bool multiMesh = meshset.size() > 1; //if mesh exists, the meshes in vecs should be the same.