7 #ifndef PARTICLEBOUNDARIES_K_H_ 8 #define PARTICLEBOUNDARIES_K_H_ 12 #include <AMReX_AmrCore.H> 19 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
22 bool& change_sign_ux,
bool& particle_lost,
24 amrex::Real refl_probability_xmin, amrex::Real refl_probability_xmax,
25 amrex::RandomEngine
const& engine )
32 if (refl_probability_xmin == 0 || amrex::Random(engine) > refl_probability_xmin) {
38 change_sign_ux =
true;
43 change_sign_ux =
true;
51 if (refl_probability_xmax == 0 || amrex::Random(engine) > refl_probability_xmax) {
57 change_sign_ux =
true;
62 change_sign_ux =
true;
83 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
87 amrex::ParticleReal& y, amrex::Real ymin, amrex::Real ymax,
89 amrex::ParticleReal&
z, amrex::Real zmin, amrex::Real zmax,
90 amrex::ParticleReal&
ux, amrex::ParticleReal& uy, amrex::ParticleReal&
uz,
93 amrex::RandomEngine
const& engine)
95 bool change_sign_ux =
false;
96 bool change_sign_uy =
false;
97 bool change_sign_uz =
false;
115 change_sign_ux =
true;
116 change_sign_uy =
true;
117 change_sign_uz =
true;
119 if (change_sign_ux) ux = -
ux;
120 if (change_sign_uy) uy = -uy;
121 if (change_sign_uz) uz = -
uz;
ParticleBoundaryType zmax_bc
Definition: ParticleBoundaries.H:57
particles cross domain boundary leave with damped j
Definition: ParticleBoundaries_K.H:14
ParticleBoundaryType xmax_bc
Definition: ParticleBoundaries.H:53
def x
Definition: read_lab_particles.py:25
amrex::ParserExecutor< 1 > reflection_model_yhi
Definition: ParticleBoundaries.H:62
particles crossing domain boundary are removed
def uz
Definition: read_lab_particles.py:29
bool reflect_all_velocities
Definition: ParticleBoundaries.H:66
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void apply_boundary(amrex::ParticleReal &x, amrex::Real xmin, amrex::Real xmax, bool &change_sign_ux, bool &particle_lost, ParticleBoundaryType xmin_bc, ParticleBoundaryType xmax_bc, amrex::Real refl_probability_xmin, amrex::Real refl_probability_xmax, amrex::RandomEngine const &engine)
Definition: ParticleBoundaries_K.H:21
amrex::ParserExecutor< 1 > reflection_model_xlo
Definition: ParticleBoundaries.H:59
ParticleBoundaryType ymin_bc
Definition: ParticleBoundaries.H:54
def z
Definition: read_lab_particles.py:26
Definition: ParticleBoundaries.H:50
ParticleBoundaryType xmin_bc
Definition: ParticleBoundaries.H:52
amrex::ParserExecutor< 1 > reflection_model_zhi
Definition: ParticleBoundaries.H:64
amrex::ParserExecutor< 1 > reflection_model_ylo
Definition: ParticleBoundaries.H:61
amrex::ParserExecutor< 1 > reflection_model_xhi
Definition: ParticleBoundaries.H:60
ParticleBoundaryType ymax_bc
Definition: ParticleBoundaries.H:55
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void apply_boundaries(amrex::ParticleReal &x, amrex::Real xmin, amrex::Real xmax, amrex::ParticleReal &z, amrex::Real zmin, amrex::Real zmax, amrex::ParticleReal &ux, amrex::ParticleReal &uy, amrex::ParticleReal &uz, bool &particle_lost, ParticleBoundaries::ParticleBoundariesData const &boundaries, amrex::RandomEngine const &engine)
Definition: ParticleBoundaries_K.H:85
amrex::ParserExecutor< 1 > reflection_model_zlo
Definition: ParticleBoundaries.H:63
def ux
Definition: read_lab_particles.py:28
ParticleBoundaryType zmin_bc
Definition: ParticleBoundaries.H:56
ParticleBoundaryType
Definition: WarpXAlgorithmSelection.H:115