diff --git a/src/output/VTKWriter.cpp b/src/output/VTKWriter.cpp index 103807dbc81ec10aba616730e8663317de13e967..796a1c0ff9703697be92be2633ab2ca2a92805bb 100644 --- a/src/output/VTKWriter.cpp +++ b/src/output/VTKWriter.cpp @@ -3,7 +3,9 @@ #include <mesh/Connectivity.hpp> #include <mesh/Mesh.hpp> #include <utils/Messenger.hpp> +#include <utils/RevisionInfo.hpp> +#include <ctime> #include <fstream> #include <iomanip> #include <sstream> @@ -18,6 +20,22 @@ VTKWriter::_getFilenamePVTU() const return sout.str(); } +std::string +VTKWriter::_getDateAndVersionComment() const +{ + std::ostringstream os; + + std::time_t now = std::time(nullptr); + os << "<!--\n"; + os << " Generated by pugs: " << std::ctime(&now); + os << " version: " << RevisionInfo::version() << '\n'; + os << " tag: " << RevisionInfo::gitTag() << '\n'; + os << " HEAD: " << RevisionInfo::gitHead() << '\n'; + os << " hash: " << RevisionInfo::gitHash() << " (" << ((RevisionInfo::gitIsClean()) ? "clean" : "dirty") << ")\n"; + os << "-->\n"; + return os.str(); +} + std::string VTKWriter::_getFilenameVTU(int rank_number) const { @@ -269,6 +287,7 @@ VTKWriter::_write(const std::shared_ptr<const MeshType>& mesh, if (parallel::rank() == 0) { // write PVTK file std::ofstream fout(_getFilenamePVTU()); fout << "<?xml version=\"1.0\"?>\n"; + fout << _getDateAndVersionComment(); fout << "<VTKFile type=\"PUnstructuredGrid\">\n"; fout << "<PUnstructuredGrid GhostLevel=\"0\">\n"; @@ -318,6 +337,7 @@ VTKWriter::_write(const std::shared_ptr<const MeshType>& mesh, { // write VTK files std::ofstream fout(_getFilenameVTU(parallel::rank())); fout << "<?xml version=\"1.0\"?>\n"; + fout << _getDateAndVersionComment(); fout << "<VTKFile type=\"UnstructuredGrid\">\n"; fout << "<UnstructuredGrid>\n"; fout << "<Piece NumberOfPoints=\"" << mesh->numberOfNodes() << "\" NumberOfCells=\"" << mesh->numberOfCells() diff --git a/src/output/VTKWriter.hpp b/src/output/VTKWriter.hpp index fadec4f9d39386a4386cfd97f88aede7066f8295..52a4bd9d94918d01cad6fccbced121688883baad 100644 --- a/src/output/VTKWriter.hpp +++ b/src/output/VTKWriter.hpp @@ -19,6 +19,8 @@ class VTKWriter : public IWriter mutable double m_last_time; const double m_time_period; + std::string _getDateAndVersionComment() const; + std::string _getFilenamePVTU() const; std::string _getFilenameVTU(int rank_number) const;