aboutsummaryrefslogtreecommitdiff
path: root/Source/ParticleContainer.cpp
diff options
context:
space:
mode:
authorGravatar Remi Lehe <remi.lehe@normalesup.org> 2018-10-08 15:11:10 -0700
committerGravatar GitHub <noreply@github.com> 2018-10-08 15:11:10 -0700
commit76a2753ca442d4138a117406ba422ca3453bccf7 (patch)
tree307e8514163b5b9760afbc2ac29edabb6bd24dfc /Source/ParticleContainer.cpp
parent78b2f28655309cadd0abe3693b0baf0ded183a98 (diff)
parent129eb13c2798467ede32cce1ceb80330d8067b75 (diff)
downloadWarpX-76a2753ca442d4138a117406ba422ca3453bccf7.tar.gz
WarpX-76a2753ca442d4138a117406ba422ca3453bccf7.tar.zst
WarpX-76a2753ca442d4138a117406ba422ca3453bccf7.zip
Merge pull request #9 from ECP-WarpX/depositonmaingrid
Allow species to always deposit on level 0
Diffstat (limited to 'Source/ParticleContainer.cpp')
-rw-r--r--Source/ParticleContainer.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/Source/ParticleContainer.cpp b/Source/ParticleContainer.cpp
index 02de0a4db..66a5736ab 100644
--- a/Source/ParticleContainer.cpp
+++ b/Source/ParticleContainer.cpp
@@ -23,6 +23,7 @@ MultiParticleContainer::MultiParticleContainer (AmrCore* amr_core)
else if (species_types[i] == PCTypes::RigidInjected) {
allcontainers[i].reset(new RigidInjectedParticleContainer(amr_core, i, species_names[i]));
}
+ allcontainers[i]->deposit_on_main_grid = deposit_on_main_grid[i];
}
if (WarpX::use_laser) {
allcontainers[n-1].reset(new LaserParticleContainer(amr_core,n-1));
@@ -44,6 +45,16 @@ MultiParticleContainer::ReadParameters ()
pp.getarr("species_names", species_names);
BL_ASSERT(species_names.size() == nspecies);
+ deposit_on_main_grid.resize(nspecies, 0);
+ std::vector<std::string> tmp;
+ pp.queryarr("deposit_on_main_grid", tmp);
+ for (auto const& name : tmp) {
+ auto it = std::find(species_names.begin(), species_names.end(), name);
+ AMREX_ALWAYS_ASSERT_WITH_MESSAGE(it != species_names.end(), "ERROR: species in particles.deposit_on_main_grid must be part of particles.species_names");
+ int i = std::distance(species_names.begin(), it);
+ deposit_on_main_grid[i] = 1;
+ }
+
species_types.resize(nspecies, PCTypes::Physical);
std::vector<std::string> rigid_injected_species;