ImpactX
All.H
Go to the documentation of this file.
1 /* Copyright 2022-2023 The Regents of the University of California, through Lawrence
2  * Berkeley National Laboratory (subject to receipt of any required
3  * approvals from the U.S. Dept. of Energy). All rights reserved.
4  *
5  * This file is part of ImpactX.
6  *
7  * Authors: Axel Huebl
8  * License: BSD-3-Clause-LBNL
9  */
10 #ifndef IMPACTX_DISTRIBUTION_ALL_H
11 #define IMPACTX_DISTRIBUTION_ALL_H
12 
13 #include "Gaussian.H"
14 #include "Kurth4D.H"
15 #include "Kurth6D.H"
16 #include "KVdist.H"
17 #include "None.H"
18 #include "Semigaussian.H"
19 #include "Triangle.H"
20 #include "Waterbag.H"
21 
22 #include <variant>
23 
24 
25 namespace impactx
26 {
27 namespace distribution
28 {
29  using KnownDistributions = std::variant<
30  None, /* must be first, so KnownDistributions creates a default constructor */
31  Gaussian,
32  Kurth4D,
33  Kurth6D,
34  KVdist,
35  Triangle,
37  Waterbag
38  >;
39 
40 } // namespace distribution
41 } // namespace impactx
42 
43 #endif // IMPACTX_DISTRIBUTION_ALL_H
std::variant< None, Gaussian, Kurth4D, Kurth6D, KVdist, Triangle, Semigaussian, Waterbag > KnownDistributions
Definition: All.H:38
Definition: ImpactX.cpp:32
Definition: Gaussian.H:24
Definition: KVdist.H:24
Definition: Kurth4D.H:24
Definition: Kurth6D.H:24
Definition: None.H:22
Definition: Semigaussian.H:24
Definition: Triangle.H:26
Definition: Waterbag.H:24