From 21b43c38ec2e6907a9aa1ce7adf15524b7f35f46 Mon Sep 17 00:00:00 2001 From: AlexanderSinn Date: Tue, 13 Feb 2024 22:21:15 +0100 Subject: [PATCH] use id is_valid --- src/particles/beam/BeamParticleContainer.cpp | 5 ++--- src/particles/beam/BeamParticleContainerInit.cpp | 1 + src/particles/deposition/BeamDepositCurrent.cpp | 2 +- src/particles/deposition/ExplicitDeposition.cpp | 2 +- src/particles/deposition/PlasmaDepositCurrent.cpp | 4 ++-- src/particles/plasma/PlasmaParticleContainer.cpp | 2 +- src/particles/pusher/BeamParticleAdvance.cpp | 2 +- src/particles/pusher/GetAndSetPosition.H | 4 ++-- src/particles/pusher/PlasmaParticleAdvance.cpp | 2 +- src/salame/Salame.cpp | 2 +- 10 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/particles/beam/BeamParticleContainer.cpp b/src/particles/beam/BeamParticleContainer.cpp index 9df96bf49c..4fd091f60f 100644 --- a/src/particles/beam/BeamParticleContainer.cpp +++ b/src/particles/beam/BeamParticleContainer.cpp @@ -378,8 +378,7 @@ BeamParticleContainer::intializeSlice (int slice, int which_slice) { ptd.rdata(BeamIdx::uy)[ip] = ptd_init.rdata(BeamIdx::uy)[idx_src]; ptd.rdata(BeamIdx::uz)[ip] = ptd_init.rdata(BeamIdx::uz)[idx_src]; - ptd.id(ip) = ptd_init.id(idx_src); - ptd.cpu(ip) = 0; + ptd.idcpu(ip) = ptd_init.idcpu(idx_src); ptd.idata(BeamIdx::nsubcycles)[ip] = 0; } ); @@ -472,7 +471,7 @@ BeamParticleContainer::InSituComputeDiags (int islice) const amrex::Real uz_inv = uz == 0._rt ? 0._rt : 1._rt / uz; - if (ptd.id(ip) < 0 || x*x + y*y > insitu_radius_sq) { + if (!ptd.id(ip).is_valid() || x*x + y*y > insitu_radius_sq) { return amrex::IdentityTuple(ReduceTuple{}, reduce_op); } const amrex::Real gamma = std::sqrt(1.0_rt + ux*ux + uy*uy + uz*uz); diff --git a/src/particles/beam/BeamParticleContainerInit.cpp b/src/particles/beam/BeamParticleContainerInit.cpp index 20af4ea94d..4b043a3d89 100644 --- a/src/particles/beam/BeamParticleContainerInit.cpp +++ b/src/particles/beam/BeamParticleContainerInit.cpp @@ -53,6 +53,7 @@ namespace ptd.rdata(BeamIdx::w )[ip] = std::abs(weight); ptd.id(ip) = pid > 0 ? pid + ip : pid; + ptd.cpu(ip) = 0; } /** \brief Adds a single beam particle into the per-slice BeamTile diff --git a/src/particles/deposition/BeamDepositCurrent.cpp b/src/particles/deposition/BeamDepositCurrent.cpp index 41f13733a1..494d2803ae 100644 --- a/src/particles/deposition/BeamDepositCurrent.cpp +++ b/src/particles/deposition/BeamDepositCurrent.cpp @@ -99,7 +99,7 @@ DepositCurrentSlice (BeamParticleContainer& beam, Fields& fields, // Skip invalid particles and ghost particles not in the last slice // beam deposits only up to its finest level - if (ptd.id(ip) < 0 || (only_highest ? (ptd.cpu(ip)!=lev) : (ptd.cpu(ip) insitu_radius_sq) { + if (!ptd.id(ip).is_valid() || x*x + y*y > insitu_radius_sq) { return amrex::IdentityTuple(ReduceTuple{}, reduce_op); } // particle's Lorentz factor diff --git a/src/particles/pusher/BeamParticleAdvance.cpp b/src/particles/pusher/BeamParticleAdvance.cpp index 46de0d9c9e..4481ebd58a 100644 --- a/src/particles/pusher/BeamParticleAdvance.cpp +++ b/src/particles/pusher/BeamParticleAdvance.cpp @@ -129,7 +129,7 @@ AdvanceBeamParticlesSlice ( beam.getNumParticlesIncludingSlipped(WhichBeamSlice::This), [=] AMREX_GPU_DEVICE (int ip, auto depos_order, auto c_use_external_fields) { - if (ptd.id(ip) < 0) return; + if (!ptd.id(ip).is_valid()) return; amrex::Real xp = ptd.pos(0, ip); amrex::Real yp = ptd.pos(1, ip); diff --git a/src/particles/pusher/GetAndSetPosition.H b/src/particles/pusher/GetAndSetPosition.H index 5c065a0221..795041713f 100644 --- a/src/particles/pusher/GetAndSetPosition.H +++ b/src/particles/pusher/GetAndSetPosition.H @@ -72,7 +72,7 @@ struct EnforceBCandSetPos const bool invalid = (shifted && !m_is_per); if (invalid) { ptd.rdata(PlasmaIdx::w)[ip] = 0.0_rt; - p.id() = -std::abs(p.id()); + p.id().make_invalid(); } x = p.pos(0); y = p.pos(1); @@ -103,7 +103,7 @@ struct EnforceBCandSetPos const bool invalid = (shifted && !m_is_per); if (invalid) { ptd.rdata(BeamIdx::w)[ip] = 0.0_rt; - p.id() = -std::abs(p.id()); + p.id().make_invalid(); } x = p.pos(0); y = p.pos(1); diff --git a/src/particles/pusher/PlasmaParticleAdvance.cpp b/src/particles/pusher/PlasmaParticleAdvance.cpp index a3b7501ec0..c72b45bb33 100644 --- a/src/particles/pusher/PlasmaParticleAdvance.cpp +++ b/src/particles/pusher/PlasmaParticleAdvance.cpp @@ -107,7 +107,7 @@ AdvancePlasmaParticles (PlasmaParticleContainer& plasma, const Fields & fields, [=] AMREX_GPU_DEVICE (int idx, auto depos_order, auto use_laser) { const int ip = idx + idx_begin; // only push plasma particles on their according MR level - if (ptd.id(ip) < 0 || ptd.cpu(ip) != lev) return; + if (!ptd.id(ip).is_valid() || ptd.cpu(ip) != lev) return; // define field at particle position reals amrex::Real ExmByp = 0._rt, EypBxp = 0._rt, Ezp = 0._rt; diff --git a/src/salame/Salame.cpp b/src/salame/Salame.cpp index 79223f33b1..894ad8338d 100644 --- a/src/salame/Salame.cpp +++ b/src/salame/Salame.cpp @@ -302,7 +302,7 @@ SalameOnlyAdvancePlasma (Hipace* hipace, const int lev) [=] AMREX_GPU_DEVICE (long idx, auto depos_order) { const int ip = idx + idx_begin; // only push plasma particles on their according MR level - if (ptd.id(ip) < 0 || ptd.cpu(ip) != lev) return; + if (!ptd.id(ip).is_valid() || ptd.cpu(ip) != lev) return; const amrex::Real xp = ptd.rdata(PlasmaIdx::x_prev)[ip]; const amrex::Real yp = ptd.rdata(PlasmaIdx::y_prev)[ip];