diff options
author | 2021-07-06 15:35:01 -0700 | |
---|---|---|
committer | 2021-07-06 15:35:01 -0700 | |
commit | 0356216f504643a0e33a6932efc5c2cbf9a2abe1 (patch) | |
tree | 73266aaec6dec16bde6349e49e55e1bd9c8bfca5 /Source/Particles/MultiParticleContainer.cpp | |
parent | 82eec2a5032286c617449ea45a341b72b6f8bed2 (diff) | |
download | WarpX-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.cpp | 22 |
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"); |