diff options
author | 2019-09-30 14:31:25 -0700 | |
---|---|---|
committer | 2019-09-30 14:31:25 -0700 | |
commit | ce06037bdfa6a13e11b54dd905d90a3a58d81e69 (patch) | |
tree | aa7c4e09db4fdbe00be39cbb2c120379ead649cb /Source/Particles/ParticleCreation/CreateParticles.cpp | |
parent | cd72adb1c86c427dc5011236978928489a8b8d20 (diff) | |
download | WarpX-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.cpp | 14 |
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; |