Skip to content

Commit

Permalink
fix race condition
Browse files Browse the repository at this point in the history
  • Loading branch information
lucafedeli88 committed Apr 30, 2024
1 parent b21ba8c commit 74bb09c
Showing 1 changed file with 13 additions and 12 deletions.
25 changes: 13 additions & 12 deletions Source/Particles/PhysicalParticleContainer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1003,6 +1003,19 @@ PhysicalParticleContainer::AddPlasma (PlasmaInjector const& plasma_injector, int
const bool radially_weighted = plasma_injector.radially_weighted;
#endif


// User-defined integer and real attributes: prepare parsers
const auto n_user_int_attribs = static_cast<int>(m_user_int_attribs.size());
const auto n_user_real_attribs = static_cast<int>(m_user_real_attribs.size());
amrex::Gpu::PinnedVector< amrex::ParserExecutor<7> > user_int_attrib_parserexec_pinned(n_user_int_attribs);
amrex::Gpu::PinnedVector< amrex::ParserExecutor<7> > user_real_attrib_parserexec_pinned(n_user_real_attribs);
for (int ia = 0; ia < n_user_int_attribs; ++ia) {
user_int_attrib_parserexec_pinned[ia] = m_user_int_attrib_parser[ia]->compile<7>();
}
for (int ia = 0; ia < n_user_real_attribs; ++ia) {
user_real_attrib_parserexec_pinned[ia] = m_user_real_attrib_parser[ia]->compile<7>();
}

MFItInfo info;
if (do_tiling && Gpu::notInLaunchRegion()) {
info.EnableTiling(tile_size);
Expand Down Expand Up @@ -1124,18 +1137,6 @@ PhysicalParticleContainer::AddPlasma (PlasmaInjector const& plasma_injector, int
// and invalid ones are then discarded
const amrex::Long max_new_particles = Scan::ExclusiveSum(counts.size(), counts.data(), offset.data());

// User-defined integer and real attributes: prepare parsers
const auto n_user_int_attribs = static_cast<int>(m_user_int_attribs.size());
const auto n_user_real_attribs = static_cast<int>(m_user_real_attribs.size());
amrex::Gpu::PinnedVector< amrex::ParserExecutor<7> > user_int_attrib_parserexec_pinned(n_user_int_attribs);
amrex::Gpu::PinnedVector< amrex::ParserExecutor<7> > user_real_attrib_parserexec_pinned(n_user_real_attribs);
for (int ia = 0; ia < n_user_int_attribs; ++ia) {
user_int_attrib_parserexec_pinned[ia] = m_user_int_attrib_parser[ia]->compile<7>();
}
for (int ia = 0; ia < n_user_real_attribs; ++ia) {
user_real_attrib_parserexec_pinned[ia] = m_user_real_attrib_parser[ia]->compile<7>();
}

// Update NextID to include particles created in this function
amrex::Long pid;
#ifdef AMREX_USE_OMP
Expand Down

0 comments on commit 74bb09c

Please sign in to comment.