diff options
author | 2021-09-24 10:03:51 -0700 | |
---|---|---|
committer | 2021-09-24 10:03:51 -0700 | |
commit | e1c1c8bac405069440bfa393dfb7197a6be3ffbc (patch) | |
tree | 51ebcc33091f8920fc9ab65df99de0ccd7ef404b /Source/Particles/MultiParticleContainer.cpp | |
parent | 129a533e3b899eaf62a49e9c1f6a47f5cfda9465 (diff) | |
download | WarpX-e1c1c8bac405069440bfa393dfb7197a6be3ffbc.tar.gz WarpX-e1c1c8bac405069440bfa393dfb7197a6be3ffbc.tar.zst WarpX-e1c1c8bac405069440bfa393dfb7197a6be3ffbc.zip |
Stochastic particle reflection from absorbing domain boundaries (#2281)
* added tunable particle reflection from absorbing domain boundaries
* extended picmi.py to allow setting boundary reflection coefficients and added a CI test for the reflection implementation
* allow R(E) to be specified, except for embedded boundaries
* changed approach for particle reflection, now the ParticleBoundaries object will hold the reflection coefficient; reflection from EBs not implemented
* added functionality to reflect from EB; still needs to be tested for accuracy
* added support for energy dependent reflection models for domain boundaries
* fixed at least one issue causing CI fails - building reflection model parsers for not physical particle containers
* switched reflection coefficients to be functions of the velocity component perpendicular to the boundary rather than energy
* reverted initial work on reflecting from EBs
* changed naming convention for new CI test for particle reflection
* switched useMPI back to 1 in test
* breaking changes while trying to sort out GPU issue
* fixed issue with CUDA compilation - hopefully :)
* various code improvements from PR review suggestions
* fix of major issues
* no need to parse the reflection models at every step
* skip particles that are already flagged for removal in ApplyBoundaryConditions
Diffstat (limited to 'Source/Particles/MultiParticleContainer.cpp')
-rw-r--r-- | Source/Particles/MultiParticleContainer.cpp | 18 |
1 files changed, 1 insertions, 17 deletions
diff --git a/Source/Particles/MultiParticleContainer.cpp b/Source/Particles/MultiParticleContainer.cpp index 549358f30..3868442c5 100644 --- a/Source/Particles/MultiParticleContainer.cpp +++ b/Source/Particles/MultiParticleContainer.cpp @@ -357,22 +357,6 @@ MultiParticleContainer::ReadParameters () "ERROR: use_fdtd_nci_corr is not supported in RZ"); #endif - // 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"); pp_lasers.queryarr("names", lasers_names); @@ -613,7 +597,7 @@ void MultiParticleContainer::ApplyBoundaryConditions () { for (auto& pc : allcontainers) { - pc->ApplyBoundaryConditions(m_boundary_conditions); + pc->ApplyBoundaryConditions(); } } |