aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/MultiParticleContainer.cpp
diff options
context:
space:
mode:
authorGravatar MaxThevenet <mthevenet@lbl.gov> 2019-05-07 11:48:48 -0700
committerGravatar MaxThevenet <mthevenet@lbl.gov> 2019-05-07 11:48:48 -0700
commitddb2585a55edcedd0ca613f4288f34d71edda8b2 (patch)
treebf10af450087431ea4678559acd8ca944a7a3a8a /Source/Particles/MultiParticleContainer.cpp
parent4d14b8af45c9f3d8e4c774c7bd9e4cddfdecfe78 (diff)
downloadWarpX-ddb2585a55edcedd0ca613f4288f34d71edda8b2.tar.gz
WarpX-ddb2585a55edcedd0ca613f4288f34d71edda8b2.tar.zst
WarpX-ddb2585a55edcedd0ca613f4288f34d71edda8b2.zip
continuous injection working + comments
Diffstat (limited to 'Source/Particles/MultiParticleContainer.cpp')
-rw-r--r--Source/Particles/MultiParticleContainer.cpp32
1 files changed, 10 insertions, 22 deletions
diff --git a/Source/Particles/MultiParticleContainer.cpp b/Source/Particles/MultiParticleContainer.cpp
index 9810a168f..a5f695c69 100644
--- a/Source/Particles/MultiParticleContainer.cpp
+++ b/Source/Particles/MultiParticleContainer.cpp
@@ -416,45 +416,33 @@ MultiParticleContainer
}
/* \brief Continuous injection for particles initially outside of the domain.
- * \param dt: timestep (so far, this only works without MR)
- * \param prob_domain: current boundaries of the full domain.
+ * \param injection_box: Domain where new particles should be injected.
* Loop over all WarpXParticleContainer in MultiParticleContainer and
* calls virtual function ContinuousInjection.
*/
void
-MultiParticleContainer::ContinuousInjection(Real dt, const RealBox& prob_domain) const
+MultiParticleContainer::ContinuousInjection(const RealBox& injection_box) 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->ContinuousInjection(dt, prob_domain);
+ if (pc->do_continuous_injection){
+ pc->ContinuousInjection(injection_box);
}
}
}
+/* \brief Update position of continuous injection parameters.
+ * \param dt: simulation time step (level 0)
+ * All classes inherited from WarpXParticleContainer do not have
+ * a position to update (PhysicalParticleContainer does not do anything).
+ */
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;
+ if (pc->do_continuous_injection){
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);
- }
- */
}