8#ifndef WARPX_RigidInjectedParticleContainer_H_
9#define WARPX_RigidInjectedParticleContainer_H_
53 const std::string& name);
68 const std::string& current_fp_string,
72 bool skip_deposition=
false,
87 int lev,
int gather_lev,
93 void PushP (
int lev, amrex::Real dt,
103 void WriteHeader (std::ostream& os)
const override;
#define AMREX_ENUM(CLASS,...)
Array4< int const > offset
RigidAdvanceMode
Definition RigidInjectedParticleContainer.H:27
@ vz
Definition RigidInjectedParticleContainer.H:27
@ v
Definition RigidInjectedParticleContainer.H:27
@ vzbar
Definition RigidInjectedParticleContainer.H:27
PositionPushType
For advanced collision algorithms that split the particle push in substeps.
Definition WarpXAlgorithmSelection.H:181
@ Full
Definition WarpXAlgorithmSelection.H:181
MomentumPushType
For advanced collision algorithms that split the particle push in substeps.
Definition WarpXAlgorithmSelection.H:189
@ Full
Definition WarpXAlgorithmSelection.H:189
SubcyclingHalf
Subcycling half selector.
Definition WarpXAlgorithmSelection.H:166
@ None
Definition WarpXAlgorithmSelection.H:166
PhysicalParticleContainer(amrex::AmrCore *amr_core, int ispecies, const std::string &name)
Definition PhysicalParticleContainer.cpp:119
void WriteHeader(std::ostream &os) const override
Definition ParticleIO.cpp:99
void InitData() override
Definition RigidInjectedParticleContainer.cpp:85
amrex::ParticleReal zinject_plane_lev_previous
Definition RigidInjectedParticleContainer.H:117
void PushPX(WarpXParIter &pti, amrex::FArrayBox const *exfab, amrex::FArrayBox const *eyfab, amrex::FArrayBox const *ezfab, amrex::FArrayBox const *bxfab, amrex::FArrayBox const *byfab, amrex::FArrayBox const *bzfab, amrex::IntVect ngEB, int, long offset, long np_to_push, int lev, int gather_lev, amrex::Real dt, ScaleFields scaleFields, SubcyclingHalf subcycling_half=SubcyclingHalf::None, PositionPushType position_push_type=PositionPushType::Full, MomentumPushType momentum_push_type=MomentumPushType::Full) override
Gather fields and push particles in one fused kernel.
Definition RigidInjectedParticleContainer.cpp:171
amrex::Vector< amrex::ParticleReal > zinject_plane_levels
Definition RigidInjectedParticleContainer.H:113
virtual void RemapParticles()
Definition RigidInjectedParticleContainer.cpp:102
RigidInjectedParticleContainer & operator=(RigidInjectedParticleContainer const &)=delete
void Evolve(ablastr::fields::MultiFabRegister &fields, int lev, const std::string ¤t_fp_string, amrex::Real t, amrex::Real dt, SubcyclingHalf subcycling_half=SubcyclingHalf::None, bool skip_deposition=false, PositionPushType position_push_type=PositionPushType::Full, MomentumPushType momentum_push_type=MomentumPushType::Full, ImplicitOptions const *implicit_options=nullptr) override
Evolve is the central function in PhysicalParticleContainer that advances plasma particles for a time...
Definition RigidInjectedParticleContainer.cpp:277
RigidAdvanceMode rigid_advance_mode
Definition RigidInjectedParticleContainer.H:109
bool done_injecting_lev
Definition RigidInjectedParticleContainer.H:118
amrex::ParticleReal zinject_plane
Definition RigidInjectedParticleContainer.H:108
void PushP(int lev, amrex::Real dt, const amrex::MultiFab &Ex, const amrex::MultiFab &Ey, const amrex::MultiFab &Ez, const amrex::MultiFab &Bx, const amrex::MultiFab &By, const amrex::MultiFab &Bz) override
Definition RigidInjectedParticleContainer.cpp:315
~RigidInjectedParticleContainer() override=default
void ReadHeader(std::istream &is) override
Definition ParticleIO.cpp:75
amrex::ParticleReal vzbeam_ave_boosted
Definition RigidInjectedParticleContainer.H:111
RigidInjectedParticleContainer(amrex::AmrCore *amr_core, int ispecies, const std::string &name)
Definition RigidInjectedParticleContainer.cpp:59
RigidInjectedParticleContainer(RigidInjectedParticleContainer &&)=default
amrex::ParticleReal zinject_plane_lev
Definition RigidInjectedParticleContainer.H:116
RigidInjectedParticleContainer(RigidInjectedParticleContainer const &)=delete
Definition WarpXParticleContainer.H:112
Definition EffectivePotentialPoissonSolver.H:63
Definition ImplicitOptions.H:7
Functor that scales E and B by a factor before pushing the particles. This is used for rigid injectio...
Definition ScaleFields.H:14
Definition MultiFabRegister.H:262