From 719ddb931bd8347f6fb770f2d30b659703d62e59 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Fri, 22 Jul 2022 11:44:26 -0700 Subject: [PATCH] Particles: More Specializations Add a few more template specializations as used in ImpactX and HiPACE++ particle containers. --- src/Particle/ArrayOfStructs.cpp | 3 ++- src/Particle/Particle.cpp | 11 +++++++---- src/Particle/ParticleContainer.cpp | 5 ++++- src/Particle/ParticleTile.cpp | 5 ++++- src/Particle/StructOfArrays.cpp | 7 +++++-- 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/Particle/ArrayOfStructs.cpp b/src/Particle/ArrayOfStructs.cpp index f67cf32a..db6155d0 100644 --- a/src/Particle/ArrayOfStructs.cpp +++ b/src/Particle/ArrayOfStructs.cpp @@ -80,7 +80,8 @@ void make_ArrayOfStructs(py::module &m) } void init_ArrayOfStructs(py::module& m) { - make_ArrayOfStructs<7,0> (m); + make_ArrayOfStructs< 0, 0> (m); + make_ArrayOfStructs< 7, 0> (m); make_ArrayOfStructs< 1, 1> (m); make_ArrayOfStructs< 2, 1> (m); } diff --git a/src/Particle/Particle.cpp b/src/Particle/Particle.cpp index 42ce9513..d9b55747 100644 --- a/src/Particle/Particle.cpp +++ b/src/Particle/Particle.cpp @@ -321,8 +321,11 @@ void init_Particle(py::module& m) { ; py::enum_(pidx, "IntValues") ; - make_Particle (m); - make_Particle<1, 1> (m); - make_Particle<2, 1> (m); - make_Particle<3, 2> (m); + make_Particle< PIdx::nRealAttribs, PIdx::nIntAttribs > (m); + make_Particle< 1, 1 > (m); + make_Particle< 2, 1 > (m); + make_Particle< 3, 2 > (m); + make_Particle< 4, 0 > (m); // HiPACE++ 22.07 + make_Particle< 5, 0 > (m); // ImpactX 22.07 + make_Particle< 37, 1> (m); // HiPACE++ 22.07 } diff --git a/src/Particle/ParticleContainer.cpp b/src/Particle/ParticleContainer.cpp index c67fc554..822f4551 100644 --- a/src/Particle/ParticleContainer.cpp +++ b/src/Particle/ParticleContainer.cpp @@ -246,5 +246,8 @@ void init_ParticleContainer(py::module& m) { // TODO: we might need to move all or most of the defines in here into a // test/example submodule, so they do not collide with downstream projects make_ParticleContainer< 1, 1, 2, 1> (m); - make_ParticleContainer<0,0,7,0> (m); + make_ParticleContainer< 0, 0, 4, 0> (m); // HiPACE++ 22.07 + make_ParticleContainer< 0, 0, 5, 0> (m); // ImpactX 22.07 + make_ParticleContainer< 0, 0, 7, 0> (m); + make_ParticleContainer< 0, 0, 37, 1> (m); // HiPACE++ 22.07 } diff --git a/src/Particle/ParticleTile.cpp b/src/Particle/ParticleTile.cpp index 16fe3fd7..43d4aaac 100644 --- a/src/Particle/ParticleTile.cpp +++ b/src/Particle/ParticleTile.cpp @@ -100,5 +100,8 @@ void init_ParticleTile(py::module& m) { // TODO: we might need to move all or most of the defines in here into a // test/example submodule, so they do not collide with downstream projects make_ParticleTile< 1, 1, 2, 1> (m); - make_ParticleTile<0,0,7,0> (m); + make_ParticleTile< 0, 0, 4, 0> (m); // HiPACE++ 22.07 + make_ParticleTile< 0, 0, 5, 0> (m); // ImpactX 22.07 + make_ParticleTile< 0, 0, 7, 0> (m); + make_ParticleTile< 0, 0, 37, 1> (m); // HiPACE++ 22.07 } diff --git a/src/Particle/StructOfArrays.cpp b/src/Particle/StructOfArrays.cpp index 5167642e..27eee473 100644 --- a/src/Particle/StructOfArrays.cpp +++ b/src/Particle/StructOfArrays.cpp @@ -43,6 +43,9 @@ void make_StructOfArrays(py::module &m) void init_StructOfArrays(py::module& m) { - make_StructOfArrays< 2, 1> (m); - make_StructOfArrays<7,0> (m); + make_StructOfArrays< 2, 1 > (m); + make_StructOfArrays< 4, 0 > (m); // HiPACE++ 22.07 + make_StructOfArrays< 5, 0 > (m); // ImpactX 22.07 + make_StructOfArrays< 7, 0 > (m); + make_StructOfArrays< 37, 1> (m); // HiPACE++ 22.07 }