IPPL API Reference
Independent Parallel Particle Layer C++ API
Loading...
Searching...
No Matches
datatypes.h
1#ifndef IPPL_DATATYPES_H
2#define IPPL_DATATYPES_H
3
4#include "PoissonSolvers/FFTOpenPoissonSolver.h"
5#include "PoissonSolvers/FFTPeriodicPoissonSolver.h"
6#include "PoissonSolvers/FFTTruncatedGreenPeriodicPoissonSolver.h"
7#include "PoissonSolvers/NullSolver.h"
8#include "PoissonSolvers/PoissonCG.h"
9#include "PoissonSolvers/FEMPoissonSolver.h"
10#include "PoissonSolvers/PreconditionedFEMPoissonSolver.h"
11
12// some typedefs
13template <unsigned Dim>
15
16template <typename T, unsigned Dim>
17using PLayout_t = typename ippl::ParticleSpatialLayout<T, Dim, Mesh_t<Dim>>;
18
19template <unsigned Dim>
20using Centering_t = typename Mesh_t<Dim>::DefaultCentering;
21
22template <unsigned Dim>
24
25using size_type = ippl::detail::size_type;
26
27template <typename T, unsigned Dim>
29
30template <typename T, unsigned Dim = 3, class... ViewArgs>
31using Field = ippl::Field<T, Dim, Mesh_t<Dim>, Centering_t<Dim>, ViewArgs...>;
32
33template <typename T = double, unsigned Dim = 3>
35
36template <typename T>
38
39template <typename T, unsigned Dim>
41
42template <unsigned Dim, class... ViewArgs>
43using Field_t = Field<double, Dim, ViewArgs...>;
44
45template <typename T = double, unsigned Dim = 3, class... ViewArgs>
46using VField_t = Field<Vector_t<T, Dim>, Dim, ViewArgs...>;
47
48template <typename T = double, unsigned Dim = 3>
50
51template <typename T = double, unsigned Dim = 3>
53
54using ippl::detail::ConditionalType, ippl::detail::VariantFromConditionalTypes;
55
56template <typename T = double, unsigned Dim = 3>
57using FFTSolver_t = ConditionalType<Dim == 2 || Dim == 3,
59
60template <typename T = double, unsigned Dim = 3>
61using FFTTruncatedGreenSolver_t =
62 ConditionalType<Dim == 3,
64
65template <typename T = double, unsigned Dim = 3>
66using OpenSolver_t =
67 ConditionalType<Dim == 3, ippl::FFTOpenPoissonSolver<VField_t<T, Dim>, Field_t<Dim>>>;
68
69template <typename T = double, unsigned Dim = 3>
71
72template <typename T = double, unsigned Dim = 3>
74
75template <typename T = double, unsigned Dim = 3>
76using Solver_t = VariantFromConditionalTypes<CGSolver_t<T, Dim>, FFTSolver_t<T, Dim>,
77 FFTTruncatedGreenSolver_t<T, Dim>,
78 OpenSolver_t<T, Dim>, NullSolver_t<T, Dim>,
80
81extern const char* TestName;
82
83#endif
Definition Centering.h:30
A solver for the poisson equation using finite element methods and Conjugate Gradient (CG)
Definition FEMPoissonSolver.h:23
Definition FFTPeriodicPoissonSolver.h:23
Definition FFTTruncatedGreenPeriodicPoissonSolver.h:26
Definition FieldLayout.h:166
Definition NullSolver.h:16
Definition OrthogonalRecursiveBisection.h:28
Definition ParticleAttrib.h:33
Definition ParticleSpatialLayout.h:46
Definition PoissonCG.h:23
A solver for the poisson equation using finite element methods and Conjugate Gradient (CG)
Definition PreconditionedFEMPoissonSolver.h:24
Definition UniformCartesian.h:14
Definition Vector.h:23