diff options
author | 2021-10-04 21:31:53 +0200 | |
---|---|---|
committer | 2021-10-04 12:31:53 -0700 | |
commit | d0cc41acec8fbba8d66fabd3351751adf00903d7 (patch) | |
tree | a81179ac9fa9df10a5f3eee4c62eee2812a5b2f2 /Source/Particles/Collision/CollisionHandler.cpp | |
parent | f32fca03f725afa92ee380884d86e116e265aee1 (diff) | |
download | WarpX-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.cpp | 16 |
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."); } |