From fd6e516a71968fcf074e62a50756abeedf7a2ac6 Mon Sep 17 00:00:00 2001 From: YoungHui Park Date: Thu, 10 Sep 2020 02:08:21 -0500 Subject: [PATCH] Use pointer instead of full copy for bank_index --- src/state_point.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/state_point.cpp b/src/state_point.cpp index c4f9ed0601..c6e4c00660 100644 --- a/src/state_point.cpp +++ b/src/state_point.cpp @@ -615,7 +615,7 @@ write_source_bank(hid_t group_id, bool surf_src_bank) int64_t max_bank_size = simulation::work_per_rank; // Set vectors for source bank and starting bank index of each process - std::vector bank_index = simulation::work_index; + std::vector* bank_index = &simulation::work_index; std::vector src_bank = simulation::source_bank; // Reset dataspace sizes and vectors for surface source bank @@ -625,7 +625,7 @@ write_source_bank(hid_t group_id, bool surf_src_bank) dims_size = qsize[0]; count_size = simulation::surf_src_bank.size(); - bank_index = simulation::surf_src_index; + bank_index = &simulation::surf_src_index; src_bank.assign(simulation::surf_src_bank.data(), simulation::surf_src_bank.data() @@ -645,7 +645,7 @@ write_source_bank(hid_t group_id, bool surf_src_bank) hid_t memspace = H5Screate_simple(1, count, nullptr); // Select hyperslab for this dataspace - hsize_t start[] {static_cast(bank_index[mpi::rank])}; + hsize_t start[] {static_cast((*bank_index)[mpi::rank])}; H5Sselect_hyperslab(dspace, H5S_SELECT_SET, start, nullptr, count, nullptr); // Set up the property list for parallel writing @@ -677,7 +677,7 @@ write_source_bank(hid_t group_id, bool surf_src_bank) for (int i = 0; i < mpi::n_procs; ++i) { // Create memory space - hsize_t count[] {static_cast(bank_index[i+1] - bank_index[i])}; + hsize_t count[] {static_cast((*bank_index)[i+1] - (*bank_index)[i])}; hid_t memspace = H5Screate_simple(1, count, nullptr); #ifdef OPENMC_MPI @@ -689,7 +689,7 @@ write_source_bank(hid_t group_id, bool surf_src_bank) // Select hyperslab for this dataspace dspace = H5Dget_space(dset); - hsize_t start[] {static_cast(bank_index[i])}; + hsize_t start[] {static_cast((*bank_index)[i])}; H5Sselect_hyperslab(dspace, H5S_SELECT_SET, start, nullptr, count, nullptr); // Write data to hyperslab