diff options
Diffstat (limited to 'Source/Particles/Collision/BinaryCollision/ParticleCreationFunc.cpp')
-rw-r--r-- | Source/Particles/Collision/BinaryCollision/ParticleCreationFunc.cpp | 19 |
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 } |