aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/Collision/BinaryCollision/ParticleCreationFunc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Particles/Collision/BinaryCollision/ParticleCreationFunc.cpp')
-rw-r--r--Source/Particles/Collision/BinaryCollision/ParticleCreationFunc.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/Source/Particles/Collision/BinaryCollision/ParticleCreationFunc.cpp b/Source/Particles/Collision/BinaryCollision/ParticleCreationFunc.cpp
index fff4150c1..ba6b20f1b 100644
--- a/Source/Particles/Collision/BinaryCollision/ParticleCreationFunc.cpp
+++ b/Source/Particles/Collision/BinaryCollision/ParticleCreationFunc.cpp
@@ -23,23 +23,22 @@ ParticleCreationFunc::ParticleCreationFunc (const std::string collision_name,
m_collision_type = BinaryCollisionUtils::get_collision_type(collision_name, mypc);
-#ifdef AMREX_USE_GPU
- amrex::Vector<int> host_num_products;
-#else
- amrex::Gpu::DeviceVector<int>& host_num_products = m_num_products;
-#endif
if (m_collision_type == CollisionType::ProtonBoronFusion)
{
// Proton-Boron fusion only produces alpha particles
m_num_product_species = 1;
// Proton-Boron fusion produces 3 alpha particles per fusion reaction
- host_num_products.push_back(3);
+ m_num_products_host.push_back(3);
+#ifndef AMREX_USE_GPU
+ // On CPU, the device vector can be filled immediatly
+ m_num_products_device.push_back(3);
+#endif
}
#ifdef AMREX_USE_GPU
- m_num_products.resize(m_num_product_species);
- amrex::Gpu::copyAsync(amrex::Gpu::hostToDevice, host_num_products.begin(),
- host_num_products.end(),
- m_num_products.begin());
+ m_num_products_device.resize(m_num_product_species);
+ amrex::Gpu::copyAsync(amrex::Gpu::hostToDevice, m_num_products_host.begin(),
+ m_num_products_host.end(),
+ m_num_products_device.begin());
amrex::Gpu::streamSynchronize();
#endif
}