aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/MultiParticleContainer.cpp
diff options
context:
space:
mode:
authorGravatar David Grote <grote1@llnl.gov> 2021-07-06 15:35:01 -0700
committerGravatar GitHub <noreply@github.com> 2021-07-06 15:35:01 -0700
commit0356216f504643a0e33a6932efc5c2cbf9a2abe1 (patch)
tree73266aaec6dec16bde6349e49e55e1bd9c8bfca5 /Source/Particles/MultiParticleContainer.cpp
parent82eec2a5032286c617449ea45a341b72b6f8bed2 (diff)
downloadWarpX-0356216f504643a0e33a6932efc5c2cbf9a2abe1.tar.gz
WarpX-0356216f504643a0e33a6932efc5c2cbf9a2abe1.tar.zst
WarpX-0356216f504643a0e33a6932efc5c2cbf9a2abe1.zip
Reflective particle boundary condition (#1728)
* Added ParticleBoundaries and reflecting boundary conditions * Added ParticleBoundaries::AllNone * Allowed different particle boundary conditions on each side of the domain * Updated the documentation for particle boundaries * Fix end of line space in Docs/source/running_cpp/parameters.rst * Updated the reflecting BC to use boundary input group * Fixes to reflective boundary conditions * Bug fix in AsStored * Added particle boundaries regression test particle_boundaries_3d * Fixed particle_boundaries_3d.json * Minor updates * Added algo.particle_shape to test case * Remove do_pml from test case Co-authored-by: Revathi Jambunathan <41089244+RevathiJambunathan@users.noreply.github.com> * Need to explicitly turn off pml in CI test * Re-add include * Fixed includes Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: Revathi Jambunathan <41089244+RevathiJambunathan@users.noreply.github.com> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Diffstat (limited to 'Source/Particles/MultiParticleContainer.cpp')
-rw-r--r--Source/Particles/MultiParticleContainer.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/Source/Particles/MultiParticleContainer.cpp b/Source/Particles/MultiParticleContainer.cpp
index b7d34ec75..9061aec40 100644
--- a/Source/Particles/MultiParticleContainer.cpp
+++ b/Source/Particles/MultiParticleContainer.cpp
@@ -293,14 +293,20 @@ MultiParticleContainer::ReadParameters ()
"ERROR: use_fdtd_nci_corr is not supported in RZ");
#endif
- std::string boundary_conditions = "none";
- pp_particles.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");
+ // The boundary conditions are read in in ReadBCParams
+ m_boundary_conditions.SetBoundsX(WarpX::particle_boundary_lo[0], WarpX::particle_boundary_hi[0]);
+#ifdef WARPX_DIM_3D
+ m_boundary_conditions.SetBoundsY(WarpX::particle_boundary_lo[1], WarpX::particle_boundary_hi[1]);
+ m_boundary_conditions.SetBoundsZ(WarpX::particle_boundary_lo[2], WarpX::particle_boundary_hi[2]);
+#else
+ m_boundary_conditions.SetBoundsZ(WarpX::particle_boundary_lo[1], WarpX::particle_boundary_hi[1]);
+#endif
+
+ {
+ ParmParse pp_boundary("boundary");
+ bool flag = false;
+ pp_boundary.query("reflect_all_velocities", flag);
+ m_boundary_conditions.Set_reflect_all_velocities(flag);
}
ParmParse pp_lasers("lasers");