From 29ae561ec3cb727fb55ee06f94e9c552713b6dc9 Mon Sep 17 00:00:00 2001
From: Tobias Meisel <tobias.meisel@ufz.de>
Date: Wed, 7 Oct 2020 14:24:05 +0200
Subject: [PATCH] [MeL] makevtuoutput can now write additionally xdmf format
 ...

- rename to makeoutput
---
 ProcessLib/Output/Output.cpp        |  2 +-
 ProcessLib/Output/ProcessOutput.cpp | 14 ++++++++++----
 ProcessLib/Output/ProcessOutput.h   |  4 ++--
 3 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/ProcessLib/Output/Output.cpp b/ProcessLib/Output/Output.cpp
index fb35566d7ae..a6a315352ab 100644
--- a/ProcessLib/Output/Output.cpp
+++ b/ProcessLib/Output/Output.cpp
@@ -444,7 +444,7 @@ void Output::doOutputNonlinearIteration(Process const& process,
 
     DBUG("output iteration results to {:s}", output_file_path);
     makeOutput(output_file_path, process.getMesh(), _output_file_compression,
-               _output_file_data_mode);
+               _output_file_data_mode, _output_file_type);
     INFO("[time] Output took {:g} s.", time_output.elapsed());
 }
 }  // namespace ProcessLib
diff --git a/ProcessLib/Output/ProcessOutput.cpp b/ProcessLib/Output/ProcessOutput.cpp
index f6b0f1495ce..c0413ee49b6 100644
--- a/ProcessLib/Output/ProcessOutput.cpp
+++ b/ProcessLib/Output/ProcessOutput.cpp
@@ -251,7 +251,7 @@ void addProcessDataToMesh(
 }
 
 void makeOutput(std::string const& file_name, MeshLib::Mesh const& mesh,
-                bool const compress_output, int const data_mode)
+                bool const compress_output, int const data_mode, std::string const& file_type)
 {
     // Write output file
     DBUG("Writing output to '{:s}'.", file_name);
@@ -269,9 +269,15 @@ void makeOutput(std::string const& file_name, MeshLib::Mesh const& mesh,
 #endif  //_WIN32
 #endif  //__APPLE__
 
-    MeshLib::IO::VtuInterface vtu_interface(&mesh, data_mode, compress_output);
-    vtu_interface.writeToFile(file_name);
-
+    if (file_type=="VTK")
+    {
+        MeshLib::IO::VtuInterface vtu_interface(&mesh, data_mode, compress_output);
+        vtu_interface.writeToFile(file_name);
+    }
+    else if (file_type=="XDMF")
+    {
+        MeshLib::IO::writeXdmf3(mesh, file_name);
+    }
     // Restore floating-point exception handling.
 #ifndef _WIN32
 #ifndef __APPLE__
diff --git a/ProcessLib/Output/ProcessOutput.h b/ProcessLib/Output/ProcessOutput.h
index 5e6fe96aed2..688480c2e3a 100644
--- a/ProcessLib/Output/ProcessOutput.h
+++ b/ProcessLib/Output/ProcessOutput.h
@@ -47,6 +47,6 @@ void addProcessDataToMesh(
 /// See Output::_output_file_data_mode documentation for the data_mode
 /// parameter.
 void makeOutput(std::string const& file_name, MeshLib::Mesh const& mesh,
-                bool const compress_output, int const data_mode);
-
+                bool const compress_output, int const data_mode,
+                std::string const& file_type);
 }  // namespace ProcessLib
-- 
GitLab