From 34d6922a66d066922ff634bec5f7ff12ccfc9079 Mon Sep 17 00:00:00 2001 From: CGH0S7 <776459475@qq.com> Date: Sat, 28 Feb 2026 13:20:06 +0800 Subject: [PATCH] =?UTF-8?q?fdderivs=5Fc:=20=E5=85=A8=E9=87=8F=E6=B8=85?= =?UTF-8?q?=E9=9B=B6=E6=94=B9=E4=B8=BA=E5=8F=AA=E6=B8=85=E9=9B=B6=E8=BE=B9?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=EF=BC=8C=E5=87=8F=E5=B0=91=E6=97=A0=E6=95=88?= =?UTF-8?q?=E5=86=85=E5=AD=98=E5=86=99=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 (1M context) --- AMSS_NCKU_source/fdderivs_c.C | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/AMSS_NCKU_source/fdderivs_c.C b/AMSS_NCKU_source/fdderivs_c.C index 5cc52d4..e3e9086 100644 --- a/AMSS_NCKU_source/fdderivs_c.C +++ b/AMSS_NCKU_source/fdderivs_c.C @@ -71,11 +71,30 @@ void fdderivs(const int ex[3], const double Fdxdz = F1o144 / (dX * dZ); const double Fdydz = F1o144 / (dY * dZ); - /* 输出清零:fxx,fyy,fzz,fxy,fxz,fyz = 0 */ + /* 只清零主循环不覆盖的最外层边界面 */ const size_t all = (size_t)ex1 * (size_t)ex2 * (size_t)ex3; - for (size_t p = 0; p < all; ++p) { - fxx[p] = ZEO; fyy[p] = ZEO; fzz[p] = ZEO; - fxy[p] = ZEO; fxz[p] = ZEO; fyz[p] = ZEO; + { + /* k0=ex3-1 面 */ + for (int j0 = 0; j0 < ex2; ++j0) + for (int i0 = 0; i0 < ex1; ++i0) { + const size_t p = idx_ex(i0, j0, ex3-1, ex); + fxx[p]=ZEO; fyy[p]=ZEO; fzz[p]=ZEO; + fxy[p]=ZEO; fxz[p]=ZEO; fyz[p]=ZEO; + } + /* j0=ex2-1 面 */ + for (int k0 = 0; k0 < ex3-1; ++k0) + for (int i0 = 0; i0 < ex1; ++i0) { + const size_t p = idx_ex(i0, ex2-1, k0, ex); + fxx[p]=ZEO; fyy[p]=ZEO; fzz[p]=ZEO; + fxy[p]=ZEO; fxz[p]=ZEO; fyz[p]=ZEO; + } + /* i0=ex1-1 面 */ + for (int k0 = 0; k0 < ex3-1; ++k0) + for (int j0 = 0; j0 < ex2-1; ++j0) { + const size_t p = idx_ex(ex1-1, j0, k0, ex); + fxx[p]=ZEO; fyy[p]=ZEO; fzz[p]=ZEO; + fxy[p]=ZEO; fxz[p]=ZEO; fyz[p]=ZEO; + } } /*