From 30f1ec11f1f2f1f4bd57145fa3bb0ab7d11b59bd Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Mon, 9 Sep 2019 15:11:07 -0700 Subject: Particles: gather_from_main_grid Support gather for individual particle species from the main grid. Very much based on the similar option for deposition :) --- Source/Particles/MultiParticleContainer.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'Source/Particles/MultiParticleContainer.cpp') diff --git a/Source/Particles/MultiParticleContainer.cpp b/Source/Particles/MultiParticleContainer.cpp index 7803bdae1..aa434a474 100644 --- a/Source/Particles/MultiParticleContainer.cpp +++ b/Source/Particles/MultiParticleContainer.cpp @@ -21,6 +21,7 @@ MultiParticleContainer::MultiParticleContainer (AmrCore* amr_core) allcontainers[i].reset(new RigidInjectedParticleContainer(amr_core, i, species_names[i])); } allcontainers[i]->deposit_on_main_grid = deposit_on_main_grid[i]; + allcontainers[i]->m_gather_from_main_grid = m_gather_from_main_grid[i]; } for (int i = nspecies; i < nspecies+nlasers; ++i) { @@ -69,6 +70,16 @@ MultiParticleContainer::ReadParameters () deposit_on_main_grid[i] = 1; } + m_gather_from_main_grid.resize(nspecies, 0); + std::vector tmp_gather; + pp.queryarr("gather_from_main_grid", tmp_gather); + for (auto const& name : tmp_gather) { + auto it = std::find(species_names.begin(), species_names.end(), name); + AMREX_ALWAYS_ASSERT_WITH_MESSAGE(it != species_names.end(), "ERROR: species in particles.gather_from_main_grid must be part of particles.species_names"); + int i = std::distance(species_names.begin(), it); + m_gather_from_main_grid.at(i) = true; + } + species_types.resize(nspecies, PCTypes::Physical); std::vector rigid_injected_species; -- cgit v1.2.3