7 #ifndef WARPX_FILTERFUNCTORS_H
8 #define WARPX_FILTERFUNCTORS_H
96 const amrex::ParticleReal a_mass,
const amrex::Real time):
111 using namespace amrex::literals;
117 amrex::ParticleReal
x, y, z;
168 return AMREX_D_TERM( (p.pos(0) >= m_domain.lo(0)) && (p.pos(0) <= m_domain.hi(0) ),
169 && (p.pos(1) >= m_domain.lo(1)) && (p.pos(1) <= m_domain.hi(1) ),
170 && (p.pos(2) >= m_domain.lo(2)) && (p.pos(2) <= m_domain.hi(2) ));
#define AMREX_FORCE_INLINE
#define AMREX_GPU_HOST_DEVICE
#define AMREX_D_TERM(a, b, c)
InputUnits
Used to keep track of what inputs units a filter function should expect. "WarpX units" means the mome...
Definition: FilterFunctors.H:25
typename WarpXParticleContainer::SuperParticleType SuperParticleType
Definition: FilterFunctors.H:18
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void get_particle_position(const WarpXParticleContainer::SuperParticleType &p, amrex::ParticleReal &x, amrex::ParticleReal &y, amrex::ParticleReal &z) noexcept
Extract the cartesian position coordinates of the particle p and store them in the variables x,...
Definition: GetAndSetPosition.H:28
Particle< NStructReal+NArrayReal, NStructInt+NArrayInt > SuperParticleType
static constexpr auto c
vacuum speed of light [m/s]
Definition: constant.H:44
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void ignore_unused(const Ts &...)
Functor that returns 1 if the particle is inside a given axis-aligned region defined by amrex::RealBo...
Definition: FilterFunctors.H:156
const bool m_is_active
Definition: FilterFunctors.H:174
GeometryFilter(bool a_is_active, amrex::RealBox a_domain)
Definition: FilterFunctors.H:157
const amrex::RealBox m_domain
Definition: FilterFunctors.H:176
@ uz
Definition: NamedComponentParticleContainer.H:34
@ uy
Definition: NamedComponentParticleContainer.H:34
@ ux
Definition: NamedComponentParticleContainer.H:34
Functor that returns 0 or 1 depending on a parser selection.
Definition: FilterFunctors.H:88
amrex::ParticleReal m_mass
Definition: FilterFunctors.H:142
amrex::ParserExecutor< 7 > const m_function_partparser
Definition: FilterFunctors.H:140
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool operator()(const SuperParticleType &p, const amrex::RandomEngine &) const noexcept
return 1 if the particle is selected by the parser
Definition: FilterFunctors.H:109
amrex::Real m_t
Definition: FilterFunctors.H:144
InputUnits m_units
Definition: FilterFunctors.H:146
const bool m_is_active
Definition: FilterFunctors.H:137
ParserFilter(bool a_is_active, amrex::ParserExecutor< 7 > const &a_filter_parser, const amrex::ParticleReal a_mass, const amrex::Real time)
Definition: FilterFunctors.H:95
Functor that returns 0 or 1 depending on a random draw per particle.
Definition: FilterFunctors.H:31
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool operator()(const SuperParticleType &p, const amrex::RandomEngine &engine) const noexcept
draw random number, return 1 if number < m_fraction, 1 otherwise
Definition: FilterFunctors.H:46
RandomFilter(bool a_is_active, amrex::Real a_fraction)
Definition: FilterFunctors.H:36
const amrex::Real m_fraction
select all particles if false
Definition: FilterFunctors.H:54
const bool m_is_active
Definition: FilterFunctors.H:53