From ce06037bdfa6a13e11b54dd905d90a3a58d81e69 Mon Sep 17 00:00:00 2001 From: MaxThevenet Date: Mon, 30 Sep 2019 14:31:25 -0700 Subject: pass functor to createParticles --- Source/Particles/ParticleCreation/CreateParticles.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'Source/Particles/ParticleCreation/CreateParticles.cpp') 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& is_flagged) + amrex::Gpu::ManagedDeviceVector& 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; -- cgit v1.2.3