diff options
author | 2019-09-12 13:13:47 -0700 | |
---|---|---|
committer | 2019-09-12 13:13:47 -0700 | |
commit | 21726e22f087b5a66c041798fd4c412db1bcc9a8 (patch) | |
tree | 4237d31edcdbae330371d5160f39d7b004da4dcd /Source/Particles/WarpXParticleContainer.cpp | |
parent | aa5098a48e808b63f2c96929e0517a795dc5d206 (diff) | |
parent | fac0103278365b136f396c7e3f436057faabe167 (diff) | |
download | WarpX-21726e22f087b5a66c041798fd4c412db1bcc9a8.tar.gz WarpX-21726e22f087b5a66c041798fd4c412db1bcc9a8.tar.zst WarpX-21726e22f087b5a66c041798fd4c412db1bcc9a8.zip |
Merge pull request #343 from MaxThevenet/qed_playground
Photon particle container
Diffstat (limited to 'Source/Particles/WarpXParticleContainer.cpp')
-rw-r--r-- | Source/Particles/WarpXParticleContainer.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/Source/Particles/WarpXParticleContainer.cpp b/Source/Particles/WarpXParticleContainer.cpp index 6de7a6011..ee606aadb 100644 --- a/Source/Particles/WarpXParticleContainer.cpp +++ b/Source/Particles/WarpXParticleContainer.cpp @@ -136,7 +136,7 @@ WarpXParticleContainer::AddOneParticle (int lev, int grid, int tile, Real x, Real y, Real z, std::array<Real,PIdx::nattribs>& attribs) { - auto& particle_tile = GetParticles(lev)[std::make_pair(grid,tile)]; + auto& particle_tile = DefineAndReturnParticleTile(lev, grid, tile); AddOneParticle(particle_tile, x, y, z, attribs); } @@ -163,6 +163,11 @@ WarpXParticleContainer::AddOneParticle (ParticleTileType& particle_tile, particle_tile.push_back(p); particle_tile.push_back_real(attribs); + + for (int i = PIdx::nattribs; i < NumRealComps(); ++i) + { + particle_tile.push_back_real(i, 0.0); + } } void @@ -195,7 +200,7 @@ WarpXParticleContainer::AddNParticles (int lev, // Add to grid 0 and tile 0 // Redistribute() will move them to proper places. std::pair<int,int> key {0,0}; - auto& particle_tile = GetParticles(lev)[key]; + auto& particle_tile = DefineAndReturnParticleTile(0, 0, 0); std::size_t np = iend-ibegin; @@ -258,6 +263,11 @@ WarpXParticleContainer::AddNParticles (int lev, particle_tile.push_back_real(comp, np, 0.0); #endif } + + for (int i = PIdx::nattribs; i < NumRealComps(); ++i) + { + particle_tile.push_back_real(i, 0.0); + } } Redistribute(); |