aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/Collision/CollisionHandler.cpp
diff options
context:
space:
mode:
authorGravatar Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> 2021-10-04 21:31:53 +0200
committerGravatar GitHub <noreply@github.com> 2021-10-04 12:31:53 -0700
commitd0cc41acec8fbba8d66fabd3351751adf00903d7 (patch)
treea81179ac9fa9df10a5f3eee4c62eee2812a5b2f2 /Source/Particles/Collision/CollisionHandler.cpp
parentf32fca03f725afa92ee380884d86e116e265aee1 (diff)
downloadWarpX-d0cc41acec8fbba8d66fabd3351751adf00903d7.tar.gz
WarpX-d0cc41acec8fbba8d66fabd3351751adf00903d7.tar.zst
WarpX-d0cc41acec8fbba8d66fabd3351751adf00903d7.zip
Add structure for proton-boron fusion module (#2217)
* Add structure for proton-boron fusion module * Fix clang compile error * Generalize structure for other nuclear fusion types * Workaround: try to use std::vectors to fix clang compile error * Simplify workaround for clang * Rebase on 2245 and add empty particle creation functor * Apply suggestions from code review Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Add couple of consts and runtime assert * Add another const Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Diffstat (limited to 'Source/Particles/Collision/CollisionHandler.cpp')
-rw-r--r--Source/Particles/Collision/CollisionHandler.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/Source/Particles/Collision/CollisionHandler.cpp b/Source/Particles/Collision/CollisionHandler.cpp
index 40889ccb0..073092574 100644
--- a/Source/Particles/Collision/CollisionHandler.cpp
+++ b/Source/Particles/Collision/CollisionHandler.cpp
@@ -6,15 +6,17 @@
*/
#include "CollisionHandler.H"
-#include "BinaryCollision.H"
-#include "PairWiseCoulombCollisionFunc.H"
#include "BackgroundMCCCollision.H"
+#include "Particles/Collision/BinaryCollision/BinaryCollision.H"
+#include "Particles/Collision/BinaryCollision/NuclearFusionFunc.H"
+#include "Particles/Collision/BinaryCollision/ParticleCreationFunc.H"
+#include "Particles/Collision/BinaryCollision/PairWiseCoulombCollisionFunc.H"
#include <AMReX_ParmParse.H>
#include <vector>
-CollisionHandler::CollisionHandler()
+CollisionHandler::CollisionHandler(MultiParticleContainer const * const mypc)
{
// Read in collision input
@@ -36,11 +38,17 @@ CollisionHandler::CollisionHandler()
if (type == "pairwisecoulomb") {
allcollisions[i] =
- std::make_unique<BinaryCollision<PairWiseCoulombCollisionFunc>>(collision_names[i]);
+ std::make_unique<BinaryCollision<PairWiseCoulombCollisionFunc>>(
+ collision_names[i], mypc);
}
else if (type == "background_mcc") {
allcollisions[i] = std::make_unique<BackgroundMCCCollision>(collision_names[i]);
}
+ else if (type == "nuclearfusion") {
+ allcollisions[i] =
+ std::make_unique<BinaryCollision<NuclearFusionFunc, ParticleCreationFunc>>(
+ collision_names[i], mypc);
+ }
else{
amrex::Abort("Unknown collision type.");
}