7 #ifndef PARTICLEBOUNDARIES_K_H_ 8 #define PARTICLEBOUNDARIES_K_H_ 22 bool& change_sign_ux,
bool& particle_lost,
24 amrex::Real refl_probability_xmin, amrex::Real refl_probability_xmax,
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;
86 #ifndef WARPX_DIM_1D_Z
87 amrex::ParticleReal& x, amrex::Real xmin, amrex::Real xmax,
90 amrex::ParticleReal& y, amrex::Real ymin, amrex::Real ymax,
92 amrex::ParticleReal& z, amrex::Real zmin, amrex::Real zmax,
93 amrex::ParticleReal& ux, amrex::ParticleReal& uy, amrex::ParticleReal& uz,
98 bool change_sign_ux =
false;
99 bool change_sign_uy =
false;
100 bool change_sign_uz =
false;
102 #ifndef WARPX_DIM_1D_Z 120 change_sign_ux =
true;
121 change_sign_uy =
true;
122 change_sign_uz =
true;
124 if (change_sign_ux) ux = -ux;
125 if (change_sign_uy) uy = -uy;
126 if (change_sign_uz) uz = -uz;
ParticleBoundaryType zmax_bc
Definition: ParticleBoundaries.H:56
particles cross domain boundary leave with damped j
Definition: ParticleBoundaries_K.H:14
ParticleBoundaryType xmax_bc
Definition: ParticleBoundaries.H:52
amrex::ParserExecutor< 1 > reflection_model_yhi
Definition: ParticleBoundaries.H:61
particles crossing domain boundary are removed
bool reflect_all_velocities
Definition: ParticleBoundaries.H:65
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:58
ParticleBoundaryType ymin_bc
Definition: ParticleBoundaries.H:53
Definition: ParticleBoundaries.H:49
#define AMREX_FORCE_INLINE
ParticleBoundaryType xmin_bc
Definition: ParticleBoundaries.H:51
#define AMREX_GPU_HOST_DEVICE
amrex::ParserExecutor< 1 > reflection_model_zhi
Definition: ParticleBoundaries.H:63
amrex::ParserExecutor< 1 > reflection_model_ylo
Definition: ParticleBoundaries.H:60
amrex::ParserExecutor< 1 > reflection_model_xhi
Definition: ParticleBoundaries.H:59
ParticleBoundaryType ymax_bc
Definition: ParticleBoundaries.H:54
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:62
ParticleBoundaryType zmin_bc
Definition: ParticleBoundaries.H:55
ParticleBoundaryType
Definition: WarpXAlgorithmSelection.H:147