diff options
Diffstat (limited to 'Source/Particles/PhotonParticleContainer.H')
-rw-r--r-- | Source/Particles/PhotonParticleContainer.H | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Source/Particles/PhotonParticleContainer.H b/Source/Particles/PhotonParticleContainer.H new file mode 100644 index 000000000..4f9fbc047 --- /dev/null +++ b/Source/Particles/PhotonParticleContainer.H @@ -0,0 +1,70 @@ +#ifndef WARPX_PhotonParticleContainer_H_ +#define WARPX_PhotonParticleContainer_H_ + +#include <PhysicalParticleContainer.H> +#include <AMReX_Vector.H> + +class PhotonParticleContainer + : public PhysicalParticleContainer +{ +public: + PhotonParticleContainer (amrex::AmrCore* amr_core, + int ispecies, + const std::string& name); + virtual ~PhotonParticleContainer () {} + + virtual void InitData() override; + + virtual void Evolve (int lev, + const amrex::MultiFab& Ex, + const amrex::MultiFab& Ey, + const amrex::MultiFab& Ez, + const amrex::MultiFab& Bx, + const amrex::MultiFab& By, + const amrex::MultiFab& Bz, + amrex::MultiFab& jx, + amrex::MultiFab& jy, + amrex::MultiFab& jz, + amrex::MultiFab* cjx, + amrex::MultiFab* cjy, + amrex::MultiFab* cjz, + amrex::MultiFab* rho, + amrex::MultiFab* crho, + const amrex::MultiFab* cEx, + const amrex::MultiFab* cEy, + const amrex::MultiFab* cEz, + const amrex::MultiFab* cBx, + const amrex::MultiFab* cBy, + const amrex::MultiFab* cBz, + amrex::Real t, + amrex::Real dt) override; + + virtual void PushPX(WarpXParIter& pti, + amrex::Cuda::ManagedDeviceVector<amrex::Real>& xp, + amrex::Cuda::ManagedDeviceVector<amrex::Real>& yp, + amrex::Cuda::ManagedDeviceVector<amrex::Real>& zp, + amrex::Cuda::ManagedDeviceVector<amrex::Real>& giv, + amrex::Real dt) override; + + + + // DepositCurrent should do nothing for photons + virtual void DepositCurrent(WarpXParIter& pti, + RealVector& wp, + RealVector& uxp, + RealVector& uyp, + RealVector& uzp, + const int * const ion_lev, + amrex::MultiFab* jx, + amrex::MultiFab* jy, + amrex::MultiFab* jz, + const long offset, + const long np_to_depose, + int thread_num, + int lev, + int depos_lev, + amrex::Real dt) {}; + +}; + +#endif // #ifndef WARPX_PhotonParticleContainer_H_ |