From c49ce141a77dd3bdf376c7015332ed399b571d80 Mon Sep 17 00:00:00 2001 From: John Tramm Date: Wed, 27 Nov 2019 17:31:58 +0000 Subject: [PATCH] fixed MPI issues that resulted from adding Bank struct member --- include/openmc/particle.h | 1 - src/initialize.cpp | 11 ++++++----- src/simulation.cpp | 10 ---------- 3 files changed, 6 insertions(+), 16 deletions(-) diff --git a/include/openmc/particle.h b/include/openmc/particle.h index 000b7f182..d65959c76 100644 --- a/include/openmc/particle.h +++ b/include/openmc/particle.h @@ -154,7 +154,6 @@ public: int delayed_group; Type particle; int64_t parent_id; - bool operator < (const Bank & bank) const{ return (parent_id < bank.parent_id); } }; diff --git a/src/initialize.cpp b/src/initialize.cpp index 460db2436..652c19f1d 100644 --- a/src/initialize.cpp +++ b/src/initialize.cpp @@ -101,18 +101,19 @@ void initialize_mpi(MPI_Comm intracomm) // Create bank datatype Particle::Bank b; - MPI_Aint disp[6]; + MPI_Aint disp[7]; 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]); - for (int i = 5; i >= 0; --i) disp[i] -= disp[0]; + MPI_Get_address(&b.parent_id, &disp[6]); + for (int i = 6; i >= 0; --i) disp[i] -= disp[0]; - int blocks[] {3, 3, 1, 1, 1, 1}; - MPI_Datatype types[] {MPI_DOUBLE, MPI_DOUBLE, MPI_DOUBLE, MPI_DOUBLE, MPI_INT, MPI_INT}; - MPI_Type_create_struct(6, blocks, disp, types, &mpi::bank); + int blocks[] {3, 3, 1, 1, 1, 1, 1}; + MPI_Datatype types[] {MPI_DOUBLE, MPI_DOUBLE, MPI_DOUBLE, MPI_DOUBLE, MPI_INT, MPI_INT, MPI_LONG}; + MPI_Type_create_struct(7, blocks, disp, types, &mpi::bank); MPI_Type_commit(&mpi::bank); } #endif // OPENMC_MPI diff --git a/src/simulation.cpp b/src/simulation.cpp index 9507360be..b775768e4 100644 --- a/src/simulation.cpp +++ b/src/simulation.cpp @@ -1170,16 +1170,6 @@ void initialize_history(Particle* p, int64_t index_source) // Every particle starts with no accumulated flux derivative. if (!model::active_tallies.empty()) zero_flux_derivs(); -<<<<<<< HEAD -======= - - /* - std::cout << "Initialized particle " << particle_seed << " with E = " << p->E_ << " and Position {" << - p->r().x << ", " << - p->r().y << ", " << - p->r().z << "}" << std::endl; - */ ->>>>>>> removed print statements } int overall_generation()