From fdeae7cb1bd8bfba99802258b47e48f5f60b2a7a Mon Sep 17 00:00:00 2001 From: CGH0S7 <776459475@qq.com> Date: Thu, 14 May 2026 15:19:36 +0800 Subject: [PATCH] Fix fourth-order C lopsided and KO stencil indexing --- AMSS_NCKU_source/kodiss_c.C | 6 +++--- AMSS_NCKU_source/lopsided_c.C | 6 +++--- AMSS_NCKU_source/lopsided_kodis_c.C | 12 ++++++------ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/AMSS_NCKU_source/kodiss_c.C b/AMSS_NCKU_source/kodiss_c.C index eceb56c..0176088 100644 --- a/AMSS_NCKU_source/kodiss_c.C +++ b/AMSS_NCKU_source/kodiss_c.C @@ -127,11 +127,11 @@ void kodis(const int ex[3], if (!(i0_lo > i0_hi || j0_lo > j0_hi || k0_lo > k0_hi)) { for (int k0 = k0_lo; k0 <= k0_hi; ++k0) { - const int kF = k0 + 2; + const int kF = k0 + 1; for (int j0 = j0_lo; j0 <= j0_hi; ++j0) { - const int jF = j0 + 2; + const int jF = j0 + 1; for (int i0 = i0_lo; i0 <= i0_hi; ++i0) { - const int iF = i0 + 2; + const int iF = i0 + 1; const size_t p = idx_ex(i0, j0, k0, ex); const double Dx = ( diff --git a/AMSS_NCKU_source/lopsided_c.C b/AMSS_NCKU_source/lopsided_c.C index 8bd9f33..9df2450 100644 --- a/AMSS_NCKU_source/lopsided_c.C +++ b/AMSS_NCKU_source/lopsided_c.C @@ -165,11 +165,11 @@ void lopsided(const int ex[3], const int imaxF = ex1, jmaxF = ex2, kmaxF = ex3; for (int k0 = 0; k0 <= ex3 - 2; ++k0) { - const int kF = k0 + 2; + const int kF = k0 + 1; for (int j0 = 0; j0 <= ex2 - 2; ++j0) { - const int jF = j0 + 2; + const int jF = j0 + 1; for (int i0 = 0; i0 <= ex1 - 2; ++i0) { - const int iF = i0 + 2; + const int iF = i0 + 1; const size_t p = idx_ex(i0, j0, k0, ex); const double sfx = Sfx[p]; diff --git a/AMSS_NCKU_source/lopsided_kodis_c.C b/AMSS_NCKU_source/lopsided_kodis_c.C index 0d9d635..fe66c3e 100644 --- a/AMSS_NCKU_source/lopsided_kodis_c.C +++ b/AMSS_NCKU_source/lopsided_kodis_c.C @@ -130,11 +130,11 @@ void lopsided_kodis(const int ex[3], /* ---- advection ---- */ for (int k0 = 0; k0 <= ex3-2; ++k0) { - const int kF = k0+2; + const int kF = k0+1; for (int j0 = 0; j0 <= ex2-2; ++j0) { - const int jF = j0+2; + const int jF = j0+1; for (int i0 = 0; i0 <= ex1-2; ++i0) { - const int iF = i0+2; + const int iF = i0+1; const size_t p = idx_ex(i0,j0,k0,ex); const double sfx = Sfx[p]; @@ -184,9 +184,9 @@ void lopsided_kodis(const int ex[3], const int i0_lo=(iminF+2>0)?iminF+2:0, j0_lo=(jminF+2>0)?jminF+2:0, k0_lo=(kminF+2>0)?kminF+2:0; const int i0_hi=imaxF-4, j0_hi=jmaxF-4, k0_hi=kmaxF-4; if (!(i0_lo>i0_hi||j0_lo>j0_hi||k0_lo>k0_hi)) { - for (int k0=k0_lo;k0<=k0_hi;++k0) { const int kF=k0+2; - for (int j0=j0_lo;j0<=j0_hi;++j0) { const int jF=j0+2; - for (int i0=i0_lo;i0<=i0_hi;++i0) { const int iF=i0+2; + for (int k0=k0_lo;k0<=k0_hi;++k0) { const int kF=k0+1; + for (int j0=j0_lo;j0<=j0_hi;++j0) { const int jF=j0+1; + for (int i0=i0_lo;i0<=i0_hi;++i0) { const int iF=i0+1; const size_t p=idx_ex(i0,j0,k0,ex); const double Dx=((fh[idx_fh_F(iF-3,jF,kF,ex)]+fh[idx_fh_F(iF+3,jF,kF,ex)])-SIX*(fh[idx_fh_F(iF-2,jF,kF,ex)]+fh[idx_fh_F(iF+2,jF,kF,ex)])+FIT*(fh[idx_fh_F(iF-1,jF,kF,ex)]+fh[idx_fh_F(iF+1,jF,kF,ex)])-TWT*fh[idx_fh_F(iF,jF,kF,ex)])/dX; const double Dy=((fh[idx_fh_F(iF,jF-3,kF,ex)]+fh[idx_fh_F(iF,jF+3,kF,ex)])-SIX*(fh[idx_fh_F(iF,jF-2,kF,ex)]+fh[idx_fh_F(iF,jF+2,kF,ex)])+FIT*(fh[idx_fh_F(iF,jF-1,kF,ex)]+fh[idx_fh_F(iF,jF+1,kF,ex)])-TWT*fh[idx_fh_F(iF,jF,kF,ex)])/dY;