diff options
Diffstat (limited to 'Source/Particles')
-rw-r--r-- | Source/Particles/MultiParticleContainer.cpp | 13 | ||||
-rw-r--r-- | Source/Particles/WarpXParticleContainer.H | 2 |
2 files changed, 11 insertions, 4 deletions
diff --git a/Source/Particles/MultiParticleContainer.cpp b/Source/Particles/MultiParticleContainer.cpp index bde8d244e..4726cb4cf 100644 --- a/Source/Particles/MultiParticleContainer.cpp +++ b/Source/Particles/MultiParticleContainer.cpp @@ -40,8 +40,8 @@ MultiParticleContainer::MultiParticleContainer (AmrCore* amr_core) auto& pc = allcontainers[i]; if (pc->do_boosted_frame_diags){ map_species_lab_diags[nspecies_lab_frame_diags] = i; - nspecies_lab_frame_diags += 1; do_boosted_frame_diags = 1; + nspecies_lab_frame_diags += 1; } } @@ -389,12 +389,16 @@ MultiParticleContainer { BL_PROFILE("MultiParticleContainer::GetLabFrameData"); + std::cout<<"GetLabFrameData 1\n"; // Loop over particle species - for (int i = 0; i < nspecies; ++i){ - WarpXParticleContainer* pc = allcontainers[i].get(); + for (int i = 0; i < nspecies_lab_frame_diags; ++i){ + int isp = map_species_lab_diags[i]; +std::cout<<"GetLabFrameData 2\n"; + WarpXParticleContainer* pc = allcontainers[isp].get(); WarpXParticleContainer::DiagnosticParticles diagnostic_particles; pc->GetParticleSlice(direction, z_old, z_new, t_boost, t_lab, dt, diagnostic_particles); +std::cout<<"GetLabFrameData 3\n"; // Here, diagnostic_particles[lev][index] is a WarpXParticleContainer::DiagnosticParticleData // where "lev" is the AMR level and "index" is a [grid index][tile index] pair. @@ -404,13 +408,16 @@ MultiParticleContainer // and Fills parts[species number i] with particle data from all grids and // tiles in diagnostic_particles. parts contains particles from all // AMR levels indistinctly. +std::cout<<"GetLabFrameData 4\n"; for (auto it = diagnostic_particles[lev].begin(); it != diagnostic_particles[lev].end(); ++it){ // it->first is the [grid index][tile index] key // it->second is the corresponding // WarpXParticleContainer::DiagnosticParticleData value +std::cout<<"GetLabFrameData 5\n"; parts[i].GetRealData(DiagIdx::w).insert( parts[i].GetRealData(DiagIdx::w ).end(), it->second.GetRealData(DiagIdx::w ).begin(), it->second.GetRealData(DiagIdx::w ).end()); +std::cout<<"GetLabFrameData 6\n"; parts[i].GetRealData(DiagIdx::x).insert( parts[i].GetRealData(DiagIdx::x ).end(), it->second.GetRealData(DiagIdx::x ).begin(), diff --git a/Source/Particles/WarpXParticleContainer.H b/Source/Particles/WarpXParticleContainer.H index 600061e8d..d1e25f3ad 100644 --- a/Source/Particles/WarpXParticleContainer.H +++ b/Source/Particles/WarpXParticleContainer.H @@ -271,7 +271,7 @@ protected: // support all features allowed by direct injection. int do_continuous_injection = 0; - int do_boosted_frame_diags = 0; + int do_boosted_frame_diags = 1; amrex::Vector<amrex::FArrayBox> local_rho; amrex::Vector<amrex::FArrayBox> local_jx; |