diff --git a/examples/heatTransfer/read/PrintData.cpp b/examples/heatTransfer/read/PrintData.cpp index ef84e6a40a69e1ad1c37514c69a0843093055e06..edbc6688fba93569b4d3eb9b74190735d9b21be7 100644 --- a/examples/heatTransfer/read/PrintData.cpp +++ b/examples/heatTransfer/read/PrintData.cpp @@ -15,6 +15,44 @@ #include "PrintData.h" +void printData(double *xy, size_t *size, size_t *offset, int rank, int steps) +{ + std::ofstream myfile; + std::string filename = "data." + std::to_string(rank); + myfile.open(filename); + double *data = xy; + uint64_t nelems = size[0] * size[1]; + for (int step = 0; step < steps; step++) + { + myfile << "rank=" << rank << " size=" << size[0] << "x" << size[1] + << " offsets=" << offset[0] << ":" << offset[1] + << " step=" << step << std::endl; + + myfile << " time row columns " << offset[1] << "..." + << offset[1] + size[1] - 1 << std::endl; + myfile << " "; + for (int j = 0; j < size[1]; j++) + { + myfile << std::setw(9) << offset[1] + j; + } + myfile << std::endl; + myfile << "------------------------------------------------------------" + "--\n"; + for (int i = 0; i < size[0]; i++) + { + myfile << std::setw(5) << step << std::setw(5) << offset[0] + i; + for (int j = 0; j < size[1]; j++) + { + myfile << std::setw(9) << std::setprecision(2) + << data[i * size[1] + j]; + } + myfile << std::endl; + } + data += nelems; + } + myfile.close(); +} + void printData(double *xy, uint64_t *size, uint64_t *offset, int rank, int steps) { diff --git a/examples/heatTransfer/read/PrintData.h b/examples/heatTransfer/read/PrintData.h index 308ace34007f88c15498464b1555b5cca3ed1f6b..13e1e527ce1a27036d0f65c540be48a459b3b3eb 100644 --- a/examples/heatTransfer/read/PrintData.h +++ b/examples/heatTransfer/read/PrintData.h @@ -13,6 +13,7 @@ #include <cstdint> +void printData(double *xy, size_t *size, size_t *offset, int rank, int steps); void printData(double *xy, uint64_t *size, uint64_t *offset, int rank, int steps); diff --git a/examples/heatTransfer/read/heatRead_adios2.cpp b/examples/heatTransfer/read/heatRead_adios2.cpp index dd8ef0cf0e7038a99eae8e3d7a90c71ced2d9f15..35ec668372a3c950002659d1487cac773a4515c7 100644 --- a/examples/heatTransfer/read/heatRead_adios2.cpp +++ b/examples/heatTransfer/read/heatRead_adios2.cpp @@ -93,8 +93,8 @@ int main(int argc, char *argv[]) } // 1D decomposition of the columns, which is inefficient for reading! - std::vector<uint64_t> readsize({gndx, gndy / nproc}); - std::vector<uint64_t> offset({0LL, rank * readsize[1]}); + adios2::Dims readsize({gndx, gndy / nproc}); + adios2::Dims offset({0LL, rank * readsize[1]}); if (rank == nproc - 1) { // last process should read all the rest of columns