aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/ParticleCreation/CreateParticles.cpp
diff options
context:
space:
mode:
authorGravatar MaxThevenet <mthevenet@lbl.gov> 2019-09-30 14:31:25 -0700
committerGravatar MaxThevenet <mthevenet@lbl.gov> 2019-09-30 14:31:25 -0700
commitce06037bdfa6a13e11b54dd905d90a3a58d81e69 (patch)
treeaa7c4e09db4fdbe00be39cbb2c120379ead649cb /Source/Particles/ParticleCreation/CreateParticles.cpp
parentcd72adb1c86c427dc5011236978928489a8b8d20 (diff)
downloadWarpX-ce06037bdfa6a13e11b54dd905d90a3a58d81e69.tar.gz
WarpX-ce06037bdfa6a13e11b54dd905d90a3a58d81e69.tar.zst
WarpX-ce06037bdfa6a13e11b54dd905d90a3a58d81e69.zip
pass functor to createParticles
Diffstat (limited to 'Source/Particles/ParticleCreation/CreateParticles.cpp')
-rw-r--r--Source/Particles/ParticleCreation/CreateParticles.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/Source/Particles/ParticleCreation/CreateParticles.cpp b/Source/Particles/ParticleCreation/CreateParticles.cpp
index 2e90676e9..5f14b6103 100644
--- a/Source/Particles/ParticleCreation/CreateParticles.cpp
+++ b/Source/Particles/ParticleCreation/CreateParticles.cpp
@@ -1,3 +1,4 @@
+#include "IonizationEvent.H"
#include "MultiParticleContainer.H"
#include "WarpX.H"
@@ -9,7 +10,9 @@ void MultiParticleContainer::createParticles (
int lev, const MFIter& mfi,
std::unique_ptr< WarpXParticleContainer>& pc_source,
std::unique_ptr< WarpXParticleContainer>& pc_product,
- amrex::Gpu::ManagedDeviceVector<int>& is_flagged)
+ amrex::Gpu::ManagedDeviceVector<int>& is_flagged,
+ copyAndTransformParticle copy_and_transform_functor
+ )
{
BL_PROFILE("createIonizedParticles");
@@ -100,6 +103,8 @@ void MultiParticleContainer::createParticles (
}
const int cpuid = ParallelDescriptor::MyProc();
+ copy_and_transform_functor(112);
+
// Loop over all source particles. If is_flagged, copy particle data
// to corresponding product particle.
amrex::For(
@@ -112,6 +117,13 @@ void MultiParticleContainer::createParticles (
// ip: index of corresponding new particle in product species
WarpXParticleContainer::ParticleType& p_product = particles_product[ip];
WarpXParticleContainer::ParticleType& p_source = particles_source[is];
+
+ copy_and_transform_functor(
+ p_source,
+
+ p_product,
+ );
+
// Copy particle from source to product: AoS
p_product.id() = pid_product + ip;
p_product.cpu() = cpuid;