aboutsummaryrefslogtreecommitdiff
path: root/Source/PhysicalParticleContainer.cpp
diff options
context:
space:
mode:
authorGravatar Andrew Myers <atmyers2@gmail.com> 2017-09-15 15:54:49 -0700
committerGravatar Andrew Myers <atmyers2@gmail.com> 2017-09-15 15:54:49 -0700
commit3d845c71120a4c39e87a6efff06b1d6cc6b510bf (patch)
tree2f3219b56748fe0ebd49cbad9c3973e6ad9f2f7e /Source/PhysicalParticleContainer.cpp
parenteb7e7add910e0e35b1dd53c2236e401153cf1f41 (diff)
downloadWarpX-3d845c71120a4c39e87a6efff06b1d6cc6b510bf.tar.gz
WarpX-3d845c71120a4c39e87a6efff06b1d6cc6b510bf.tar.zst
WarpX-3d845c71120a4c39e87a6efff06b1d6cc6b510bf.zip
Fix OMP bug in AddParticles
Diffstat (limited to 'Source/PhysicalParticleContainer.cpp')
-rw-r--r--Source/PhysicalParticleContainer.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/Source/PhysicalParticleContainer.cpp b/Source/PhysicalParticleContainer.cpp
index e8196eedc..c221ddd84 100644
--- a/Source/PhysicalParticleContainer.cpp
+++ b/Source/PhysicalParticleContainer.cpp
@@ -103,12 +103,18 @@ PhysicalParticleContainer::AddParticles (int lev, Box part_box)
#elif BL_SPACEDIM==2
scale_fac = dx[0]*dx[2]/num_ppc;
#endif
-
+
+ // First touch all tiles in the map in serial
+ for (MFIter mfi = MakeMFIter(lev); mfi.isValid(); ++mfi) {
+ const int grid_id = mfi.index();
+ const int tile_id = mfi.LocalTileIndex();
+ GetParticles(lev)[std::make_pair(grid_id, tile_id)];
+ }
+
#ifdef _OPENMP
#pragma omp parallel
#endif
- {
-
+ {
std::array<Real,PIdx::nattribs> attribs;
attribs.fill(0.0);