From 3fdb2e4a73f1c546771bf482cdfd88a00bc2f809 Mon Sep 17 00:00:00 2001 From: abhinavsns <73834077+abhinavsns@users.noreply.github.com> Date: Mon, 22 Jan 2024 11:43:37 +0100 Subject: [PATCH] Fix for Surface DC-PSE operator --- src/DCPSE/Dcpse.hpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/DCPSE/Dcpse.hpp b/src/DCPSE/Dcpse.hpp index 7a748ae..d35aa26 100644 --- a/src/DCPSE/Dcpse.hpp +++ b/src/DCPSE/Dcpse.hpp @@ -131,11 +131,13 @@ public: for (int i = 0 ; i < keys.size() ; i++) { size_t xqK = keys.get(i); - int real_particle=(xqK-initialParticleSize)/(2.*nCount); - if(real_particle<0) - { - real_particle=xqK; - } + int difference = static_cast<int>(xqK) - static_cast<int>(initialParticleSize); + int real_particle; + if (std::signbit(difference)) { + real_particle = xqK; + } else { + real_particle = difference / (2 * nCount); + } auto found=nMap.find(real_particle); if(found!=nMap.end()){ accCalcKernels.get(found->second)+=calcKernels.get(kerOff+i); -- GitLab