aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/MultiParticleContainer.H
diff options
context:
space:
mode:
authorGravatar David Grote <grote1@llnl.gov> 2021-07-20 20:59:28 -0700
committerGravatar GitHub <noreply@github.com> 2021-07-21 03:59:28 +0000
commit30a7f5ef5a561f59c70d127b54c17b5bcd82ede8 (patch)
tree05f6bfda983aa6b1b5f6084bfdbc453abef3d565 /Source/Particles/MultiParticleContainer.H
parent4a1d30e003ebe4d91565f2be09dad2362cd99f6b (diff)
downloadWarpX-30a7f5ef5a561f59c70d127b54c17b5bcd82ede8.tar.gz
WarpX-30a7f5ef5a561f59c70d127b54c17b5bcd82ede8.tar.zst
WarpX-30a7f5ef5a561f59c70d127b54c17b5bcd82ede8.zip
Implements a periodically repeating plasma lenses (#2080)
* Implements a periodically repeating plasma lens * Added documentation for plasma lenses * Added m_n_lenses to avoid use of size in device code * Change arrays to device arrays * Put DeviceVectors in the MultiParticleContainer * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Particles/Gather/GetExternalFields.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Added CI test * Updated CI test * LGTM clean up * Moved literal namespace inside the routine Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Diffstat (limited to 'Source/Particles/MultiParticleContainer.H')
-rw-r--r--Source/Particles/MultiParticleContainer.H8
1 files changed, 8 insertions, 0 deletions
diff --git a/Source/Particles/MultiParticleContainer.H b/Source/Particles/MultiParticleContainer.H
index 5ee416add..b59aa4371 100644
--- a/Source/Particles/MultiParticleContainer.H
+++ b/Source/Particles/MultiParticleContainer.H
@@ -296,6 +296,14 @@ public:
std::unique_ptr<amrex::Parser> m_Ey_particle_parser;
std::unique_ptr<amrex::Parser> m_Ez_particle_parser;
+ amrex::Real m_repeated_plasma_lens_period;
+ amrex::Vector<amrex::Real> h_repeated_plasma_lens_starts;
+ amrex::Vector<amrex::Real> h_repeated_plasma_lens_lengths;
+ amrex::Vector<amrex::Real> h_repeated_plasma_lens_strengths;
+ amrex::Gpu::DeviceVector<amrex::Real> d_repeated_plasma_lens_starts;
+ amrex::Gpu::DeviceVector<amrex::Real> d_repeated_plasma_lens_lengths;
+ amrex::Gpu::DeviceVector<amrex::Real> d_repeated_plasma_lens_strengths;
+
#ifdef WARPX_QED
/**
* \brief Performs QED events (Breit-Wheeler process and photon emission)