From 0b4321069bafde86dc14fb2f154e0a30b387e9b9 Mon Sep 17 00:00:00 2001 From: Ann Almgren Date: Mon, 15 Jan 2024 18:46:03 -0800 Subject: [PATCH] update how we locate which cell the particle is in (#1382) --- Source/Particles/ERFPCEvolve.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Source/Particles/ERFPCEvolve.cpp b/Source/Particles/ERFPCEvolve.cpp index ea8ecb548..dc7e7a941 100644 --- a/Source/Particles/ERFPCEvolve.cpp +++ b/Source/Particles/ERFPCEvolve.cpp @@ -130,8 +130,10 @@ void ERFPC::AdvectWithFlow ( MultiFab* a_umac, iv[1] += domain.smallEnd()[1]; ParticleReal zlo, zhi; if (use_terrain) { - zlo = zheight(iv[0], iv[1], iv[2]); - zhi = zheight(iv[0], iv[1], iv[2]+1); + zlo = Real(0.25) * (zheight(iv[0],iv[1] ,iv[2] ) + zheight(iv[0]+1,iv[1] ,iv[2] ) + + zheight(iv[0],iv[1]+1,iv[2] ) + zheight(iv[0]+1,iv[1]+1,iv[2] )); + zhi = Real(0.25) * (zheight(iv[0],iv[1] ,iv[2]+1) + zheight(iv[0]+1,iv[1] ,iv[2]+1) + + zheight(iv[0],iv[1]+1,iv[2]+1) + zheight(iv[0]+1,iv[1]+1,iv[2]+1)); } else { zlo = iv[2] * dx[2]; zhi = (iv[2]+1) * dx[2]; @@ -224,8 +226,10 @@ void ERFPC::AdvectWithGravity ( int a_lev, iv[1] += domain.smallEnd()[1]; ParticleReal zlo, zhi; if (use_terrain) { - zlo = zheight(iv[0], iv[1], iv[2]); - zhi = zheight(iv[0], iv[1], iv[2]+1); + zlo = Real(0.25) * (zheight(iv[0],iv[1] ,iv[2] ) + zheight(iv[0]+1,iv[1] ,iv[2] ) + + zheight(iv[0],iv[1]+1,iv[2] ) + zheight(iv[0]+1,iv[1]+1,iv[2] )); + zhi = Real(0.25) * (zheight(iv[0],iv[1] ,iv[2]+1) + zheight(iv[0]+1,iv[1] ,iv[2]+1) + + zheight(iv[0],iv[1]+1,iv[2]+1) + zheight(iv[0]+1,iv[1]+1,iv[2]+1)); } else { zlo = iv[2] * dx[2]; zhi = (iv[2]+1) * dx[2];