From d28967c8012a897d1db85aada41111d95ffd6dfc Mon Sep 17 00:00:00 2001 From: YoungHui Park Date: Tue, 30 Jun 2020 21:48:40 -0500 Subject: [PATCH] Add surf_num to bank datatype --- include/openmc/particle.h | 1 + src/initialize.cpp | 17 +++++++++-------- src/state_point.cpp | 1 + 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/include/openmc/particle.h b/include/openmc/particle.h index f70faa611..797f7b0e5 100644 --- a/include/openmc/particle.h +++ b/include/openmc/particle.h @@ -172,6 +172,7 @@ public: double E; double wgt; int delayed_group; + int surf_num; Type particle; int64_t parent_id; int64_t progeny_id; diff --git a/src/initialize.cpp b/src/initialize.cpp index 9581cce0f..4f5f525da 100644 --- a/src/initialize.cpp +++ b/src/initialize.cpp @@ -102,22 +102,23 @@ void initialize_mpi(MPI_Comm intracomm) // Create bank datatype Particle::Bank b; - MPI_Aint disp[8]; + MPI_Aint disp[9]; MPI_Get_address(&b.r, &disp[0]); MPI_Get_address(&b.u, &disp[1]); MPI_Get_address(&b.E, &disp[2]); MPI_Get_address(&b.wgt, &disp[3]); MPI_Get_address(&b.delayed_group, &disp[4]); - MPI_Get_address(&b.particle, &disp[5]); - MPI_Get_address(&b.parent_id, &disp[6]); - MPI_Get_address(&b.progeny_id, &disp[7]); - for (int i = 7; i >= 0; --i) { + MPI_Get_address(&b.surf_num, &disp[5]); + MPI_Get_address(&b.particle, &disp[6]); + MPI_Get_address(&b.parent_id, &disp[7]); + MPI_Get_address(&b.progeny_id, &disp[8]); + for (int i = 8; i >= 0; --i) { disp[i] -= disp[0]; } - int blocks[] {3, 3, 1, 1, 1, 1, 1, 1}; - MPI_Datatype types[] {MPI_DOUBLE, MPI_DOUBLE, MPI_DOUBLE, MPI_DOUBLE, MPI_INT, MPI_INT, MPI_LONG, MPI_LONG}; - MPI_Type_create_struct(8, blocks, disp, types, &mpi::bank); + int blocks[] {3, 3, 1, 1, 1, 1, 1, 1, 1}; + MPI_Datatype types[] {MPI_DOUBLE, MPI_DOUBLE, MPI_DOUBLE, MPI_DOUBLE, MPI_INT, MPI_INT, MPI_INT, MPI_LONG, MPI_LONG}; + MPI_Type_create_struct(9, blocks, disp, types, &mpi::bank); MPI_Type_commit(&mpi::bank); } #endif // OPENMC_MPI diff --git a/src/state_point.cpp b/src/state_point.cpp index 0f7b11840..ab95109b8 100644 --- a/src/state_point.cpp +++ b/src/state_point.cpp @@ -518,6 +518,7 @@ hid_t h5banktype() { H5Tinsert(banktype, "E", HOFFSET(Particle::Bank, E), H5T_NATIVE_DOUBLE); H5Tinsert(banktype, "wgt", HOFFSET(Particle::Bank, wgt), H5T_NATIVE_DOUBLE); H5Tinsert(banktype, "delayed_group", HOFFSET(Particle::Bank, delayed_group), H5T_NATIVE_INT); + H5Tinsert(banktype, "surf_num", HOFFSET(Particle::Bank, surf_num), H5T_NATIVE_INT); H5Tinsert(banktype, "particle", HOFFSET(Particle::Bank, particle), H5T_NATIVE_INT); H5Tclose(postype);