aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/MultiParticleContainer.cpp
diff options
context:
space:
mode:
authorGravatar MaxThevenet <mthevenet@lbl.gov> 2019-04-25 17:39:00 -0700
committerGravatar MaxThevenet <mthevenet@lbl.gov> 2019-04-25 17:39:00 -0700
commit8d890d18ad4cabd4dc434a14d1925f2e1e8f48ab (patch)
treea4981c89556dc61f53c644cbed6e85476153aa20 /Source/Particles/MultiParticleContainer.cpp
parente9d3c12bbaf51fab7dc67be2e02a802dd22ae60f (diff)
downloadWarpX-8d890d18ad4cabd4dc434a14d1925f2e1e8f48ab.tar.gz
WarpX-8d890d18ad4cabd4dc434a14d1925f2e1e8f48ab.tar.zst
WarpX-8d890d18ad4cabd4dc434a14d1925f2e1e8f48ab.zip
add capability to have multiple antennas
Diffstat (limited to 'Source/Particles/MultiParticleContainer.cpp')
-rw-r--r--Source/Particles/MultiParticleContainer.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/Source/Particles/MultiParticleContainer.cpp b/Source/Particles/MultiParticleContainer.cpp
index 1b644b543..81a908179 100644
--- a/Source/Particles/MultiParticleContainer.cpp
+++ b/Source/Particles/MultiParticleContainer.cpp
@@ -14,7 +14,7 @@ MultiParticleContainer::MultiParticleContainer (AmrCore* amr_core)
{
ReadParameters();
- int n = WarpX::use_laser ? nspecies+1 : nspecies;
+ int n = nspecies + nlasers;
allcontainers.resize(n);
for (int i = 0; i < nspecies; ++i) {
if (species_types[i] == PCTypes::Physical) {
@@ -25,9 +25,11 @@ MultiParticleContainer::MultiParticleContainer (AmrCore* amr_core)
}
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));
+
+ for (int i = nspecies; i < nspecies+nlasers; ++i) {
+ allcontainers[i].reset(new LaserParticleContainer(amr_core,n-1, lasers_names[i]));
}
+
pc_tmp.reset(new PhysicalParticleContainer(amr_core));
}
@@ -37,7 +39,7 @@ MultiParticleContainer::ReadParameters ()
static bool initialized = false;
if (!initialized)
{
- ParmParse pp("particles");
+ ParmParse pp("particles");
pp.query("nspecies", nspecies);
BL_ASSERT(nspecies >= 0);
@@ -70,8 +72,18 @@ MultiParticleContainer::ReadParameters ()
}
}
}
+
pp.query("use_fdtd_nci_corr", WarpX::use_fdtd_nci_corr);
pp.query("l_lower_order_in_v", WarpX::l_lower_order_in_v);
+
+ ParmParse ppl("lasers");
+ ppl.query("nlasers", nlasers);
+ BL_ASSERT(nlasers >= 0);
+ if (nlasers > 0) {
+ ppl.getarr("lasers_names", lasers_names);
+ BL_ASSERT(lasers.size() == nlasers);
+ }
+
initialized = true;
}
}