From f2aa706d52df56907f847a371b33eceb4d1f8bf3 Mon Sep 17 00:00:00 2001
From: Cristian C Lalescu <clalesc1@jhu.edu>
Date: Fri, 20 Feb 2015 21:19:37 -0500
Subject: [PATCH] add converter for 1 isoNS frame

in fact, the filenames are hardcoded, so I guess this is only
useful for a very limited number of people...
---
 src/NS.cpp | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)
 create mode 100644 src/NS.cpp

diff --git a/src/NS.cpp b/src/NS.cpp
new file mode 100644
index 00000000..b8fe5b9c
--- /dev/null
+++ b/src/NS.cpp
@@ -0,0 +1,45 @@
+#include "Morton_shuffler.hpp"
+#include <iostream>
+
+int myrank, nprocs;
+
+int main(int argc, char *argv[])
+{
+    MPI_Init(&argc, &argv);
+    MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
+    MPI_Comm_size(MPI_COMM_WORLD, &nprocs);
+
+
+    Morton_shuffler *s = new Morton_shuffler(
+            1024, 1024, 1024,
+            3, 8);
+    int n[] = {1024, 1024, 1024};
+    field_descriptor *scalar = new field_descriptor(
+            3, n, MPI_REAL4, MPI_COMM_WORLD);
+
+    float *data0 = fftwf_alloc_real(s->dinput->local_size);
+    float *data1 = fftwf_alloc_real(s->dinput->local_size);
+    scalar->read("NS_ux_t100", data0);
+    scalar->read("NS_uy_t100", data0 +   scalar->local_size);
+    scalar->read("NS_uz_t100", data0 + 2*scalar->local_size);
+    scalar->interleave(data0, data1, 3);
+    s->shuffle(data1, data0, "NS_u_t100");
+
+    fftwf_free(data1);
+    delete s;
+    s = new Morton_shuffler(
+            1024, 1024, 1024,
+            1, 8);
+    data1 = data0 + scalar->local_size;
+    scalar->read("NS_p_t100", data0);
+    s->shuffle(data0, data1, "NS_p_t100");
+
+    fftwf_free(data0);
+    delete s;
+
+    // clean up
+    fftwf_mpi_cleanup();
+    MPI_Finalize();
+    return EXIT_SUCCESS;
+}
+
-- 
GitLab