diff --git a/examples/heatTransfer/read/PrintData.cpp b/examples/heatTransfer/read/PrintData.cpp index 3cbbdb677c626f15ac5ae960a4d5fe8300d88980..edbc6688fba93569b4d3eb9b74190735d9b21be7 100644 --- a/examples/heatTransfer/read/PrintData.cpp +++ b/examples/heatTransfer/read/PrintData.cpp @@ -52,3 +52,42 @@ void printData(double *xy, size_t *size, size_t *offset, int rank, int steps) } myfile.close(); } + +void printData(double *xy, uint64_t *size, uint64_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(); +} diff --git a/examples/heatTransfer/read/PrintData.h b/examples/heatTransfer/read/PrintData.h index b51ab9b8a227b146f628c2d0522ae67ff1025c68..13e1e527ce1a27036d0f65c540be48a459b3b3eb 100644 --- a/examples/heatTransfer/read/PrintData.h +++ b/examples/heatTransfer/read/PrintData.h @@ -14,5 +14,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); #endif /* PRINTDATA_H_ */ diff --git a/examples/heatTransfer/read/heatRead_adios1.cpp b/examples/heatTransfer/read/heatRead_adios1.cpp index f08d9c7a128b832a447775e7d78f793ef7129bde..90e870e8095d5208da0cd4a7f48cae26c40c17ac 100644 --- a/examples/heatTransfer/read/heatRead_adios1.cpp +++ b/examples/heatTransfer/read/heatRead_adios1.cpp @@ -69,8 +69,6 @@ int main(int argc, char *argv[]) // 1D decomposition of the columns, which is inefficient for reading! uint64_t readsize[2] = {gndx, gndy / nproc}; uint64_t offset[2] = {0LL, rank * readsize[1]}; - size_t readsize_size_t[2] = {gndx, gndy / nproc}; - size_t offset_size_t[2] = {0LL, rank * readsize[1]}; if (rank == nproc - 1) { // last process should read all the rest of columns @@ -92,7 +90,7 @@ int main(int argc, char *argv[]) adios_schedule_read(f, sel, "T", 0, vT->nsteps, T); adios_perform_reads(f, 1); - printData(T, readsize_size_t, offset_size_t, rank, vT->nsteps); + printData(T, readsize, offset, rank, vT->nsteps); adios_read_close(f); adios_free_varinfo(vT); delete[] T;