From b174d69e5c34ddb48bbb4fee2e8a14b1aa9f8971 Mon Sep 17 00:00:00 2001 From: Remi Lehe Date: Tue, 19 Jul 2022 11:21:44 -0700 Subject: D-T fusion (#3153) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * initial work * fixed bugs and added species * update documentation * delete unused file * Add properties for neutron, hydrogen isotopes, helium isotopes * Update code to be more consistent * Correct typo * Parse deuterium-tritium fusion * Start putting in place the files for deuterium-tritium * Update documentation * Prepare structures for deuterium tritium * Fix typo * Fix compilation * Add neutron * Add correct formula for the cross-section * Correct compilation error * Fix nuclear fusion * Reset benchmarks * Prepare creation functor for 2-product fusion * First implementation of momentum initialization * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Use utility function for fusion * Minor modification of variable names * Fix GPU compilation * Fix single precision compilation * Update types * Use util function in P-B fusion * Correct compilation errors * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Correct errors * Update values of mass and charge * Correct compilation error * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Correct compilation error * Correct compilation error * Correct compilation error * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Reset benchmark * Use helium particle in proton-boron, to avoid resetting benchmark * Fixed proton-boron test * Revert "Fixed proton-boron test" This reverts commit 73c8d9d0be8417d5cd08a23daeebbc322c984808. * Incorporate Neil's recommendations * Reset benchmarks * Correct compilation errors * Add new deuterium tritium automated test * Correct formula of cross-section * Correct cross-section * Improve analysis script * Add test of energy conservation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add test of conservation of momentum * Progress in analysis script * Fix error in the initial energy of the deuterium particles * Add check of isotropy * Clean up the test script * Rewrite p_sq formula in a way to avoids machine-precision negative numbers * Add checksum * Clean up code * Apply suggestions from code review * Update PR according to comments * Update benchmark * Address additional comments * Numerical Literals Co-authored-by: Luca Fedeli Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> --- .../Collision/BinaryCollision/ParticleCreationFunc.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'Source/Particles/Collision/BinaryCollision/ParticleCreationFunc.cpp') diff --git a/Source/Particles/Collision/BinaryCollision/ParticleCreationFunc.cpp b/Source/Particles/Collision/BinaryCollision/ParticleCreationFunc.cpp index ba6b20f1b..bab92e486 100644 --- a/Source/Particles/Collision/BinaryCollision/ParticleCreationFunc.cpp +++ b/Source/Particles/Collision/BinaryCollision/ParticleCreationFunc.cpp @@ -34,6 +34,22 @@ ParticleCreationFunc::ParticleCreationFunc (const std::string collision_name, m_num_products_device.push_back(3); #endif } + else if (m_collision_type == CollisionType::DeuteriumTritiumFusion) + { + m_num_product_species = 2; + m_num_products_host.push_back(1); + m_num_products_host.push_back(1); +#ifndef AMREX_USE_GPU + // On CPU, the device vector can be filled immediatly + m_num_products_device.push_back(1); + m_num_products_device.push_back(1); +#endif + } + else + { + amrex::Abort("Unknown collision type in ParticleCreationFunc"); + } + #ifdef AMREX_USE_GPU m_num_products_device.resize(m_num_product_species); amrex::Gpu::copyAsync(amrex::Gpu::hostToDevice, m_num_products_host.begin(), -- cgit v1.2.3