WarpX
Loading...
Searching...
No Matches
ParticleBoundaryProcess.H
Go to the documentation of this file.
1/* Copyright 2021 Andrew Myers
2 *
3 * This file is part of WarpX.
4 *
5 * License: BSD-3-Clause-LBNL
6 */
7#ifndef WARPX_PARTICLEBOUNDARYPROCESS_H_
8#define WARPX_PARTICLEBOUNDARYPROCESS_H_
9
10#include <AMReX_Particle.H>
11#include <AMReX_REAL.H>
12#include <AMReX_RealVect.H>
13#include <AMReX_Random.H>
14
15
17
18struct NoOp {
19 template <typename PData>
21 void operator() (const PData& /*ptd*/, int /*i*/,
22 const amrex::RealVect& /*pos*/, const amrex::RealVect& /*normal*/,
23 amrex::RandomEngine const& /*engine*/) const noexcept
24 {}
25};
26
27struct Absorb {
28 template <typename PData>
30 void operator() (PData& ptd, int i,
31 const amrex::RealVect& /*pos*/, const amrex::RealVect& /*normal*/,
32 amrex::RandomEngine const& /*engine*/) const noexcept
33 {
34 amrex::ParticleIDWrapper{ptd.m_idcpu[i]}.make_invalid();
35 }
36};
37}
38
39#endif //WARPX_PARTICLEBOUNDARYPROCESS_H_
#define AMREX_FORCE_INLINE
#define AMREX_GPU_HOST_DEVICE
Definition ParticleBoundaryProcess.H:16
RealVectND< 3 > RealVect
Definition ParticleBoundaryProcess.H:27
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator()(PData &ptd, int i, const amrex::RealVect &, const amrex::RealVect &, amrex::RandomEngine const &) const noexcept
Definition ParticleBoundaryProcess.H:30
Definition ParticleBoundaryProcess.H:18
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator()(const PData &, int, const amrex::RealVect &, const amrex::RealVect &, amrex::RandomEngine const &) const noexcept
Definition ParticleBoundaryProcess.H:21
__host__ __device__ void make_invalid() const noexcept