aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/WarpXParticleContainer.H
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Particles/WarpXParticleContainer.H')
-rw-r--r--Source/Particles/WarpXParticleContainer.H28
1 files changed, 27 insertions, 1 deletions
diff --git a/Source/Particles/WarpXParticleContainer.H b/Source/Particles/WarpXParticleContainer.H
index ac5b47ada..c252eee6b 100644
--- a/Source/Particles/WarpXParticleContainer.H
+++ b/Source/Particles/WarpXParticleContainer.H
@@ -76,6 +76,10 @@ public:
RealVector& GetAttribs (int comp) {
return GetStructOfArrays().GetRealData(comp);
}
+
+ IntVector& GetiAttribs (int comp) {
+ return GetStructOfArrays().GetIntData(comp);
+ }
};
class MultiParticleContainer;
@@ -167,6 +171,7 @@ public:
virtual void DepositCharge(WarpXParIter& pti,
RealVector& wp,
+ const int * const ion_lev,
amrex::MultiFab* rho,
int icomp,
const long offset,
@@ -180,6 +185,7 @@ public:
RealVector& uxp,
RealVector& uyp,
RealVector& uzp,
+ const int * const ion_lev,
amrex::MultiFab* jx,
amrex::MultiFab* jy,
amrex::MultiFab* jz,
@@ -249,6 +255,8 @@ public:
static int NextID () { return ParticleType::NextID(); }
+ void setNextID(int next_id) { ParticleType::NextID(next_id); }
+
bool do_splitting = false;
// split along axes (0) or diagonals (1)
@@ -265,15 +273,22 @@ public:
void AddIntComp (const std::string& name, bool comm=true)
{
- particle_comps[name] = NumIntComps();
+ particle_icomps[name] = NumIntComps();
AddIntComp(comm);
}
int DoBoostedFrameDiags () const { return do_boosted_frame_diags; }
+ virtual void buildIonizationMask (const amrex::MFIter& mfi, const int lev,
+ amrex::Gpu::ManagedDeviceVector<int>& ionization_mask)
+ {};
+
+ std::map<std::string, int> getParticleComps () { return particle_comps;}
+
protected:
std::map<std::string, int> particle_comps;
+ std::map<std::string, int> particle_icomps;
int species_id;
@@ -290,6 +305,17 @@ protected:
// support all features allowed by direct injection.
int do_continuous_injection = 0;
+ int do_field_ionization = 0;
+ int ionization_product;
+ std::string ionization_product_name;
+ int ion_atomic_number;
+ int ionization_initial_level = 0;
+ amrex::Gpu::ManagedVector<amrex::Real> ionization_energies;
+ amrex::Gpu::ManagedVector<amrex::Real> adk_power;
+ amrex::Gpu::ManagedVector<amrex::Real> adk_prefactor;
+ amrex::Gpu::ManagedVector<amrex::Real> adk_exp_prefactor;
+ std::string physical_element;
+
int do_boosted_frame_diags = 1;
amrex::Vector<amrex::FArrayBox> local_rho;