aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/Collision/BinaryCollision/BinaryCollisionUtils.cpp
diff options
context:
space:
mode:
authorGravatar Johan Carlsson <123414318+jcarlsson-aed@users.noreply.github.com> 2023-04-11 05:15:35 -0800
committerGravatar GitHub <noreply@github.com> 2023-04-11 06:15:35 -0700
commitbc15edad62ffad16d81d7ba9cb211358fbcba522 (patch)
tree8c71a1638e9d4c5ae88e28a453cdda3948962f74 /Source/Particles/Collision/BinaryCollision/BinaryCollisionUtils.cpp
parent706cbb8bb65fb41dd0c0eb2cfe0d02565b4e03d3 (diff)
downloadWarpX-bc15edad62ffad16d81d7ba9cb211358fbcba522.tar.gz
WarpX-bc15edad62ffad16d81d7ba9cb211358fbcba522.tar.zst
WarpX-bc15edad62ffad16d81d7ba9cb211358fbcba522.zip
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 <remi.lehe@normalesup.org>
Diffstat (limited to 'Source/Particles/Collision/BinaryCollision/BinaryCollisionUtils.cpp')
-rw-r--r--Source/Particles/Collision/BinaryCollision/BinaryCollisionUtils.cpp6
1 files changed, 4 insertions, 2 deletions
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<PhysicalSpecies::hydrogen3>() && product_species2.AmIA<PhysicalSpecies::proton>())
- ||(product_species1.AmIA<PhysicalSpecies::proton>() && product_species2.AmIA<PhysicalSpecies::hydrogen3>())){
+ ||(product_species1.AmIA<PhysicalSpecies::proton>() && product_species2.AmIA<PhysicalSpecies::hydrogen3>())
+ ||(product_species1.AmIA<PhysicalSpecies::hydrogen3>() && product_species2.AmIA<PhysicalSpecies::hydrogen1>())
+ ||(product_species1.AmIA<PhysicalSpecies::hydrogen1>() && product_species2.AmIA<PhysicalSpecies::hydrogen3>())){
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<PhysicalSpecies::hydrogen2>() && species2.AmIA<PhysicalSpecies::helium3>())