From d85c67d94ba4120d261b6e3e1e628e0b2f8a2f4e Mon Sep 17 00:00:00 2001 From: Alankar Dutta Date: Mon, 9 Sep 2024 14:25:45 -0600 Subject: [PATCH 1/2] [FIX] xdmf datatype agnostic dump --- src/output/xdmf.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/output/xdmf.cpp b/src/output/xdmf.cpp index 7f2baf7d..6ad4e22a 100644 --- a/src/output/xdmf.cpp +++ b/src/output/xdmf.cpp @@ -165,7 +165,7 @@ Xdmf::Xdmf(Input &input, DataBlock *datain) { cellsubsize[3]); */ // Temporary storage on host for 3D arrays - this->vect3D = new float[nx1loc*nx2loc*nx3loc]; + this->vect3D = new DUMP_DATATYPE[nx1loc*nx2loc*nx3loc]; // fill the node_coord array DUMP_DATATYPE x1 = 0.0; From 4d79e07ff5cad43eea766dc8a11f3a1f650df98d Mon Sep 17 00:00:00 2001 From: Alankar Dutta Date: Fri, 27 Sep 2024 12:59:37 +0200 Subject: [PATCH 2/2] [ENH] xdmf io now supports experimental filesystems like dump and vtk --- src/output/xdmf.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/output/xdmf.cpp b/src/output/xdmf.cpp index 6ad4e22a..237f4ca3 100644 --- a/src/output/xdmf.cpp +++ b/src/output/xdmf.cpp @@ -10,6 +10,16 @@ #include #include #include +#if __has_include() + #include + namespace fs = std::filesystem; +#elif __has_include() + #include + namespace fs = std::experimental::filesystem; +#else + #error "Missing the header." +#endif + #include "xdmf.hpp" #include "version.hpp" #include "idefix.hpp" @@ -39,9 +49,9 @@ Xdmf::Xdmf(Input &input, DataBlock *datain) { } if(idfx::prank==0) { - if(!std::filesystem::is_directory(outputDirectory)) { + if(!fs::is_directory(outputDirectory)) { try { - if(!std::filesystem::create_directory(outputDirectory)) { + if(!fs::create_directory(outputDirectory)) { std::stringstream msg; msg << "Cannot create directory " << outputDirectory << std::endl; IDEFIX_ERROR(msg); @@ -274,8 +284,8 @@ Xdmf::Xdmf(Input &input, DataBlock *datain) { int Xdmf::Write() { idfx::pushRegion("Xdmf::Write"); - std::filesystem::path filename; - std::filesystem::path filename_xmf; + fs::path filename; + fs::path filename_xmf; hid_t err; idfx::cout << "Xdmf: Write file n " << xdmfFileNumber << "..." << std::flush; timer.reset();