From bc15edad62ffad16d81d7ba9cb211358fbcba522 Mon Sep 17 00:00:00 2001 From: Johan Carlsson <123414318+jcarlsson-aed@users.noreply.github.com> Date: Tue, 11 Apr 2023 05:15:35 -0800 Subject: DD fusion anneutronic branch (#3789) * Allow DD fusion products to be tritium + protium For deuterium-deuterium (DD) fusion there are two branches: | He-3 + n (neutronic branch, 50% probability) d + d -> < | t + p (anneutronic branch, 50% probability) Currently in Warpx anneutronic DD fusion only works when the species of the fusion products are tritium (or hydrogen3) and proton. If protium (or hydrogen1) are specified instead of proton, the simulation aborts with the following error message: amrex::Abort::0::ERROR: Product species of proton-boron fusion must be of type helium3 and neutron, or tritium and proton !!! The proposed diff allows anneutronic DD fusion to produce either protium / hydrogen1 or proton. It also corrects the error message. * Shows that DD fusion cannot produce protium Input deck that demonstrates how anneutronic DD fusion in the development branch cannot produce protium, only proton. Some options of the anneutronic DD branch: 1) tritium + proton (currently the only option) 2) tritium + protium (added in this branch) 3) triton + proton (another alternative) Option 1) seems inconsistent (why include the electron mass in one fusion product species but not in the other?). Option 2) is enabled by the diff in this branch. Option 3) would require adding a triton species (and deuteron and helion species for consistency). * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Remove test file --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Remi Lehe --- Source/Particles/Collision/BinaryCollision/BinaryCollisionUtils.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'Source/Particles/Collision/BinaryCollision/BinaryCollisionUtils.cpp') diff --git a/Source/Particles/Collision/BinaryCollision/BinaryCollisionUtils.cpp b/Source/Particles/Collision/BinaryCollision/BinaryCollisionUtils.cpp index 81acecd3e..d7cc754d0 100644 --- a/Source/Particles/Collision/BinaryCollision/BinaryCollisionUtils.cpp +++ b/Source/Particles/Collision/BinaryCollision/BinaryCollisionUtils.cpp @@ -58,10 +58,12 @@ namespace BinaryCollisionUtils{ return NuclearFusionType::DeuteriumDeuteriumToNeutronHelium; } else if ( (product_species1.AmIA() && product_species2.AmIA()) - ||(product_species1.AmIA() && product_species2.AmIA())){ + ||(product_species1.AmIA() && product_species2.AmIA()) + ||(product_species1.AmIA() && product_species2.AmIA()) + ||(product_species1.AmIA() && product_species2.AmIA())){ return NuclearFusionType::DeuteriumDeuteriumToProtonTritium; } else { - amrex::Abort("ERROR: Product species of proton-boron fusion must be of type helium3 and neutron, or tritium and proton"); + amrex::Abort("ERROR: Product species of deuterium-deuterium fusion must be of type helium3 and neutron, or tritium and proton"); } } else if ((species1.AmIA() && species2.AmIA()) -- cgit v1.2.3