diff options
author | 2020-01-31 13:12:22 -0800 | |
---|---|---|
committer | 2020-01-31 13:12:22 -0800 | |
commit | fad21f679dc5392a67750b66601c7f73923e4ca0 (patch) | |
tree | 89e2d0524da80ce8f67f8a6c96f876d08b08546f /Source/Particles/WarpXParticleContainer.cpp | |
parent | 090e78f41301022568ee7df7ecf5e3f4ee43c7e0 (diff) | |
download | WarpX-fad21f679dc5392a67750b66601c7f73923e4ca0.tar.gz WarpX-fad21f679dc5392a67750b66601c7f73923e4ca0.tar.zst WarpX-fad21f679dc5392a67750b66601c7f73923e4ca0.zip |
on second thought, implement this as a member function
Diffstat (limited to 'Source/Particles/WarpXParticleContainer.cpp')
-rw-r--r-- | Source/Particles/WarpXParticleContainer.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/Source/Particles/WarpXParticleContainer.cpp b/Source/Particles/WarpXParticleContainer.cpp index 7628cfd85..3dad0fd33 100644 --- a/Source/Particles/WarpXParticleContainer.cpp +++ b/Source/Particles/WarpXParticleContainer.cpp @@ -815,6 +815,25 @@ WarpXParticleContainer::PushX (int lev, amrex::Real dt) } } +// When using runtime components, AMReX requires to touch all tiles +// in serial and create particles tiles with runtime components if +// they do not exist (or if they were defined by default, i.e., +// without runtime component). +void WarpXParticleContainer::defineAllParticleTiles () noexcept +{ + tmp_particle_data.resize(finestLevel()+1); + for (int lev = 0; lev <= finestLevel(); ++lev) + { + for (auto mfi = MakeMFIter(lev); mfi.isValid(); ++mfi) + { + const int grid_id = mfi.index(); + const int tile_id = mfi.LocalTileIndex(); + tmp_particle_data[lev][std::make_pair(grid_id,tile_id)]; + DefineAndReturnParticleTile(lev, grid_id, tile_id); + } + } +} + // This function is called in Redistribute, just after locate void WarpXParticleContainer::particlePostLocate(ParticleType& p, |