aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles
diff options
context:
space:
mode:
authorGravatar MaxThevenet <mthevenet@lbl.gov> 2019-05-07 09:32:47 -0700
committerGravatar MaxThevenet <mthevenet@lbl.gov> 2019-05-07 09:32:47 -0700
commit6bdafd570c25fde71d2ce93ecea6fbd803f8cf2c (patch)
treefd173453823f9267e32301bcbec5942baf8bfb0a /Source/Particles
parent38b802c0ba0d47fd179a2b384e8867248de078e9 (diff)
downloadWarpX-6bdafd570c25fde71d2ce93ecea6fbd803f8cf2c.tar.gz
WarpX-6bdafd570c25fde71d2ce93ecea6fbd803f8cf2c.tar.zst
WarpX-6bdafd570c25fde71d2ce93ecea6fbd803f8cf2c.zip
laser and plasma cont injection combined and working with MW and boost in z
Diffstat (limited to 'Source/Particles')
-rw-r--r--Source/Particles/MultiParticleContainer.H4
-rw-r--r--Source/Particles/MultiParticleContainer.cpp24
-rw-r--r--Source/Particles/WarpXParticleContainer.H1
3 files changed, 28 insertions, 1 deletions
diff --git a/Source/Particles/MultiParticleContainer.H b/Source/Particles/MultiParticleContainer.H
index c6bc6d768..f48daf9bb 100644
--- a/Source/Particles/MultiParticleContainer.H
+++ b/Source/Particles/MultiParticleContainer.H
@@ -172,7 +172,9 @@ public:
void ContinuousInjection(amrex::Real dt,
const amrex::RealBox& prob_domain) const;
-
+
+ void UpdateContinuousInjectionPosition(amrex::Real dt) const;
+
//
// Parameters for the Cherenkov corrector in the FDTD solver.
// Both stencils are calculated ar runtime.
diff --git a/Source/Particles/MultiParticleContainer.cpp b/Source/Particles/MultiParticleContainer.cpp
index 1ce0c5390..9810a168f 100644
--- a/Source/Particles/MultiParticleContainer.cpp
+++ b/Source/Particles/MultiParticleContainer.cpp
@@ -434,3 +434,27 @@ MultiParticleContainer::ContinuousInjection(Real dt, const RealBox& prob_domain)
}
}
}
+
+void
+MultiParticleContainer::UpdateContinuousInjectionPosition(Real dt) const
+{
+ for (int i=0; i<nspecies+nlasers; i++){
+ auto& pc = allcontainers[i];
+ Print()<<"i "<<i<<" pc->do_continuous_injection "<<pc->do_continuous_injection<<std::endl;
+ if (pc->do_continuous_injection)
+ {
+ Print()<<"i "<<i<<" pc->do_continuous_injection "<<pc->do_continuous_injection<<std::endl;
+ pc->UpdateContinuousInjectionPosition(dt);
+ }
+ }
+ /*
+ for (int i=nspecies; i<nspecies+nlasers; i++){
+ // WarpXParticleContainer& pc = allcontainers[i];
+ WarpXParticleContainer& pc = GetParticleContainer(i);
+ auto& lpc = dynamic_cast<LaserParticleContainer&>(pc);
+ // auto& pc = allcontainers[i];
+ // auto& lpc = dynamic_cast<LaserParticleContainer&>(pc);
+ lpc.UpdateContinuousInjectionPosition(dt);
+ }
+ */
+}
diff --git a/Source/Particles/WarpXParticleContainer.H b/Source/Particles/WarpXParticleContainer.H
index 62f3570ad..51238907d 100644
--- a/Source/Particles/WarpXParticleContainer.H
+++ b/Source/Particles/WarpXParticleContainer.H
@@ -193,6 +193,7 @@ public:
// RigidInjectedParticleContainer: not implemented.
virtual void ContinuousInjection(amrex::Real dt,
const amrex::RealBox& prob_domain) {}
+ virtual void UpdateContinuousInjectionPosition(amrex::Real dt) {}
///
/// This returns the total charge for all the particles in this ParticleContainer.