aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/MultiParticleContainer.cpp
diff options
context:
space:
mode:
authorGravatar MaxThevenet <maxence.thevenet@desy.de> 2020-09-24 07:43:03 +0200
committerGravatar GitHub <noreply@github.com> 2020-09-23 22:43:03 -0700
commit8797c599f2c16e33a790300ebb275b7b696df91b (patch)
treec882767138dc023aab07d6e5414f00b2c321c685 /Source/Particles/MultiParticleContainer.cpp
parent20649677733e0b457def83ff48147facf8268b5c (diff)
downloadWarpX-8797c599f2c16e33a790300ebb275b7b696df91b.tar.gz
WarpX-8797c599f2c16e33a790300ebb275b7b696df91b.tar.zst
WarpX-8797c599f2c16e33a790300ebb275b7b696df91b.zip
Option to have absorbing BC for particles, regardless of field BC (#1334)
* option to have absorbing BC for particles, regarless of field BC * document input parameter particles.absorbing_bc * minor, just add a small comment * clarify doc and use better input parameter * clarify documentation
Diffstat (limited to 'Source/Particles/MultiParticleContainer.cpp')
-rw-r--r--Source/Particles/MultiParticleContainer.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/Source/Particles/MultiParticleContainer.cpp b/Source/Particles/MultiParticleContainer.cpp
index cb47755f7..a740330d7 100644
--- a/Source/Particles/MultiParticleContainer.cpp
+++ b/Source/Particles/MultiParticleContainer.cpp
@@ -250,6 +250,16 @@ MultiParticleContainer::ReadParameters ()
pp.query("use_fdtd_nci_corr", WarpX::use_fdtd_nci_corr);
pp.query("galerkin_interpolation", WarpX::galerkin_interpolation);
+ std::string boundary_conditions = "none";
+ pp.query("boundary_conditions", boundary_conditions);
+ if (boundary_conditions == "none"){
+ m_boundary_conditions = ParticleBC::none;
+ } else if (boundary_conditions == "absorbing"){
+ m_boundary_conditions = ParticleBC::absorbing;
+ } else {
+ amrex::Abort("unknown particle BC type");
+ }
+
ParmParse ppl("lasers");
ppl.queryarr("names", lasers_names);
@@ -385,6 +395,14 @@ MultiParticleContainer::RedistributeLocal (const int num_ghost)
}
}
+void
+MultiParticleContainer::ApplyBoundaryConditions ()
+{
+ for (auto& pc : allcontainers) {
+ pc->ApplyBoundaryConditions(m_boundary_conditions);
+ }
+}
+
Vector<long>
MultiParticleContainer::NumberOfParticlesInGrid (int lev) const
{