diff options
Diffstat (limited to 'Source/PhysicalParticleContainer.H')
-rw-r--r-- | Source/PhysicalParticleContainer.H | 39 |
1 files changed, 33 insertions, 6 deletions
diff --git a/Source/PhysicalParticleContainer.H b/Source/PhysicalParticleContainer.H index c6d13185e..40a8a6068 100644 --- a/Source/PhysicalParticleContainer.H +++ b/Source/PhysicalParticleContainer.H @@ -3,13 +3,16 @@ #include <map> +#include <PlasmaInjector.H> #include <WarpXParticleContainer.H> class PhysicalParticleContainer : public WarpXParticleContainer { public: - PhysicalParticleContainer (amrex::AmrCore* amr_core, int ispecies); + PhysicalParticleContainer (amrex::AmrCore* amr_core, + int ispecies, + const std::string& name); virtual ~PhysicalParticleContainer () {} virtual void AllocData () override; @@ -17,15 +20,39 @@ public: virtual void InitData () override; virtual void FieldGather(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) override; + 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; 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::Real t, amrex::Real dt) override; + 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::Real t, + amrex::Real dt) override; virtual void PostRestart () override {} + + // Inject particles in Box 'part_box' + void AddParticles (int lev, amrex::Box part_box = amrex::Box()); + +protected: + + void AddNDiagPerCell (int lev, amrex::Box part_box = amrex::Box()); + void AddNRandomUniformPerCell (int lev, amrex::Box part_box = amrex::Box()); + void AddNRandomNormal (int lev, amrex::Box part_box = amrex::Box()); + + std::string species_name; + std::unique_ptr<PlasmaInjector> plasma_injector; }; #endif |