diff options
author | 2020-01-31 12:53:58 -0800 | |
---|---|---|
committer | 2020-01-31 12:53:58 -0800 | |
commit | 090e78f41301022568ee7df7ecf5e3f4ee43c7e0 (patch) | |
tree | 94f8ead93d6e431407019d202027be80f701351d /Source/Particles/MultiParticleContainer.cpp | |
parent | 58e64aafe0103b6644048d7480a3e62fe01bd5cb (diff) | |
download | WarpX-090e78f41301022568ee7df7ecf5e3f4ee43c7e0.tar.gz WarpX-090e78f41301022568ee7df7ecf5e3f4ee43c7e0.tar.zst WarpX-090e78f41301022568ee7df7ecf5e3f4ee43c7e0.zip |
helper function for defining all particle tiles
Diffstat (limited to 'Source/Particles/MultiParticleContainer.cpp')
-rw-r--r-- | Source/Particles/MultiParticleContainer.cpp | 30 |
1 files changed, 5 insertions, 25 deletions
diff --git a/Source/Particles/MultiParticleContainer.cpp b/Source/Particles/MultiParticleContainer.cpp index f9a0d230b..283f6182a 100644 --- a/Source/Particles/MultiParticleContainer.cpp +++ b/Source/Particles/MultiParticleContainer.cpp @@ -652,31 +652,11 @@ MultiParticleContainer::doFieldIonization () // Get product species auto& pc_product = allcontainers[pc_source->ionization_product]; - for (int lev = 0; lev <= pc_source->finestLevel(); ++lev){ - - // 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). -#ifdef _OPENMP - // Touch all tiles of source species in serial if runtime attribs - for (MFIter mfi = pc_source->MakeMFIter(lev); mfi.isValid(); ++mfi) { - const int grid_id = mfi.index(); - const int tile_id = mfi.LocalTileIndex(); - pc_source->GetParticles(lev)[std::make_pair(grid_id,tile_id)]; - if ( (pc_source->NumRuntimeRealComps()>0) || (pc_source->NumRuntimeIntComps()>0) ) { - pc_source->DefineAndReturnParticleTile(lev, grid_id, tile_id); - } - } -#endif - // Touch all tiles of product species in serial - for (MFIter mfi = pc_source->MakeMFIter(lev); mfi.isValid(); ++mfi) { - const int grid_id = mfi.index(); - const int tile_id = mfi.LocalTileIndex(); - pc_product->GetParticles(lev)[std::make_pair(grid_id,tile_id)]; - pc_product->DefineAndReturnParticleTile(lev, grid_id, tile_id); - } - + defineAllParticleTiles(*pc_source); + defineAllParticleTiles(*pc_product); + + for (int lev = 0; lev <= pc_source->finestLevel(); ++lev) + { // Enable tiling MFItInfo info; if (pc_source->do_tiling && Gpu::notInLaunchRegion()) { |