8#ifndef WARPX_PhotonParticleContainer_H_
9#define WARPX_PhotonParticleContainer_H_
38 const std::string& name);
50 const std::string& current_fp_string,
54 bool skip_deposition=
false,
69 int lev,
int gather_lev,
Array4< int const > offset
PushType
Particle push scheme.
Definition WarpXAlgorithmSelection.H:170
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
PhotonParticleContainer(PhotonParticleContainer const &)=delete
PhotonParticleContainer(PhotonParticleContainer &&)=default
void DepositCharge(WarpXParIter &, RealVector const &, const int *const, amrex::MultiFab *, int, const long, const long, int, int, int) override
Definition PhotonParticleContainer.H:87
void DepositCurrent(WarpXParIter &, RealVector const &, RealVector const &, RealVector const &, RealVector const &, int const *const, amrex::MultiFab *const, amrex::MultiFab *const, amrex::MultiFab *const, long const, long const, int const, int const, int const, amrex::Real const, amrex::Real const, PushType) override
Definition PhotonParticleContainer.H:99
PhotonParticleContainer(amrex::AmrCore *amr_core, int ispecies, const std::string &name)
Definition PhotonParticleContainer.cpp:46
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, PositionPushType position_push_type=PositionPushType::Full, MomentumPushType momentum_push_type=MomentumPushType::Full) override
Gather fields and push particles in one fused kernel.
Definition PhotonParticleContainer.cpp:83
~PhotonParticleContainer() override=default
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
Pure virtual function to advance particles (typically by one time step).
Definition PhotonParticleContainer.cpp:244
void InitData() override
Definition PhotonParticleContainer.cpp:74
PhotonParticleContainer & operator=(PhotonParticleContainer const &)=delete
void PushP(int, amrex::Real, const amrex::MultiFab &, const amrex::MultiFab &, const amrex::MultiFab &, const amrex::MultiFab &, const amrex::MultiFab &, const amrex::MultiFab &) override
Definition PhotonParticleContainer.H:76
PhysicalParticleContainer(amrex::AmrCore *amr_core, int ispecies, const std::string &name)
Definition PhysicalParticleContainer.cpp:119
Definition WarpXParticleContainer.H:112
typename SoA::RealVector RealVector
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