From d0cc41acec8fbba8d66fabd3351751adf00903d7 Mon Sep 17 00:00:00 2001 From: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> Date: Mon, 4 Oct 2021 21:31:53 +0200 Subject: 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 * Add couple of consts and runtime assert * Add another const Co-authored-by: Axel Huebl --- Source/Particles/Collision/CollisionHandler.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'Source/Particles/Collision/CollisionHandler.cpp') 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 #include -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>(collision_names[i]); + std::make_unique>( + collision_names[i], mypc); } else if (type == "background_mcc") { allcollisions[i] = std::make_unique(collision_names[i]); } + else if (type == "nuclearfusion") { + allcollisions[i] = + std::make_unique>( + collision_names[i], mypc); + } else{ amrex::Abort("Unknown collision type."); } -- cgit v1.2.3