aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/Collision/BinaryCollision/BinaryCollisionUtils.H
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/BinaryCollision/BinaryCollisionUtils.H
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/BinaryCollision/BinaryCollisionUtils.H')
-rw-r--r--Source/Particles/Collision/BinaryCollision/BinaryCollisionUtils.H30
1 files changed, 30 insertions, 0 deletions
diff --git a/Source/Particles/Collision/BinaryCollision/BinaryCollisionUtils.H b/Source/Particles/Collision/BinaryCollision/BinaryCollisionUtils.H
new file mode 100644
index 000000000..c20e9716c
--- /dev/null
+++ b/Source/Particles/Collision/BinaryCollision/BinaryCollisionUtils.H
@@ -0,0 +1,30 @@
+/* Copyright 2021 Neil Zaim
+ *
+ * This file is part of WarpX.
+ *
+ * License: BSD-3-Clause-LBNL
+ */
+
+#ifndef BINARY_COLLISION_UTILS_H_
+#define BINARY_COLLISION_UTILS_H_
+
+#include <string>
+
+#include "Particles/MultiParticleContainer.H"
+
+enum struct CollisionType { ProtonBoronFusion, Undefined };
+
+enum struct NuclearFusionType { ProtonBoron, Undefined };
+
+namespace BinaryCollisionUtils{
+
+ NuclearFusionType get_nuclear_fusion_type (const std::string collision_name,
+ MultiParticleContainer const * const mypc);
+
+ CollisionType get_collision_type (const std::string collision_name,
+ MultiParticleContainer const * const mypc);
+
+ CollisionType nuclear_fusion_type_to_collision_type (const NuclearFusionType fusion_type);
+}
+
+#endif // BINARY_COLLISION_UTILS_H_