aboutsummaryrefslogtreecommitdiff
path: root/Source/PhysicalParticleContainer.H
diff options
context:
space:
mode:
Diffstat (limited to 'Source/PhysicalParticleContainer.H')
-rw-r--r--Source/PhysicalParticleContainer.H39
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