@@ -771,46 +771,6 @@ Field3D bracket(const Field3D& f, const Field2D& g, BRACKET_METHOD method,
771771
772772 break ;
773773 }
774- case BRACKET_ARAKAWA_OLD: {
775- #if not(BOUT_USE_METRIC_3D)
776- const int ncz = mesh->LocalNz ;
777- BOUT_OMP_PERF (parallel for )
778- for (int jx = mesh->xstart ; jx <= mesh->xend ; jx++) {
779- for (int jy = mesh->ystart ; jy <= mesh->yend ; jy++) {
780- const BoutReal partialFactor = 1.0 / (12 * metric->dz (jx, jy));
781- const BoutReal spacingFactor = partialFactor / metric->dx (jx, jy);
782- for (int jz = mesh->zstart ; jz <= mesh->zend ; jz++) {
783- const int jzp = jz + 1 < ncz ? jz + 1 : 0 ;
784- // Above is alternative to const int jzp = (jz + 1) % ncz;
785- const int jzm = jz - 1 >= 0 ? jz - 1 : ncz - 1 ;
786- // Above is alternative to const int jzmTmp = (jz - 1 + ncz) % ncz;
787-
788- // J++ = DDZ(f)*DDX(g) - DDX(f)*DDZ(g)
789- BoutReal Jpp =
790- ((f (jx, jy, jzp) - f (jx, jy, jzm)) * (g (jx + 1 , jy) - g (jx - 1 , jy))
791- - (f (jx + 1 , jy, jz) - f (jx - 1 , jy, jz)) * (g (jx, jy) - g (jx, jy)));
792-
793- // J+x
794- BoutReal Jpx = (g (jx + 1 , jy) * (f (jx + 1 , jy, jzp) - f (jx + 1 , jy, jzm))
795- - g (jx - 1 , jy) * (f (jx - 1 , jy, jzp) - f (jx - 1 , jy, jzm))
796- - g (jx, jy) * (f (jx + 1 , jy, jzp) - f (jx - 1 , jy, jzp))
797- + g (jx, jy) * (f (jx + 1 , jy, jzm) - f (jx - 1 , jy, jzm)));
798-
799- // Jx+
800- BoutReal Jxp = (g (jx + 1 , jy) * (f (jx, jy, jzp) - f (jx + 1 , jy, jz))
801- - g (jx - 1 , jy) * (f (jx - 1 , jy, jz) - f (jx, jy, jzm))
802- - g (jx - 1 , jy) * (f (jx, jy, jzp) - f (jx - 1 , jy, jz))
803- + g (jx + 1 , jy) * (f (jx + 1 , jy, jz) - f (jx, jy, jzm)));
804-
805- result (jx, jy, jz) = (Jpp + Jpx + Jxp) * spacingFactor;
806- }
807- }
808- }
809- #else
810- throw BoutException (" BRACKET_ARAKAWA_OLD not valid with 3D metrics yet." );
811- #endif
812- break ;
813- }
814774 case BRACKET_SIMPLE: {
815775 // Use a subset of terms for comparison to BOUT-06
816776 result = VDDX (DDZ (f, outloc), g, outloc);
@@ -1090,63 +1050,6 @@ Field3D bracket(const Field3D& f, const Field3D& g, BRACKET_METHOD method,
10901050 }
10911051 break ;
10921052 }
1093- case BRACKET_ARAKAWA_OLD: {
1094- // Arakawa scheme for perpendicular flow
1095-
1096- const int ncz = mesh->LocalNz ;
1097-
1098- // We need to discard const qualifier in order to manipulate
1099- // storage array directly
1100- Field3D f_temp = f;
1101- Field3D g_temp = g;
1102-
1103- BOUT_OMP_PERF (parallel for )
1104- for (int jx = mesh->xstart ; jx <= mesh->xend ; jx++) {
1105- for (int jy = mesh->ystart ; jy <= mesh->yend ; jy++) {
1106- #if not(BOUT_USE_METRIC_3D)
1107- const BoutReal spacingFactor =
1108- 1.0 / (12 * metric->dz (jx, jy) * metric->dx (jx, jy));
1109- #endif
1110- const BoutReal* Fxm = f_temp (jx - 1 , jy);
1111- const BoutReal* Fx = f_temp (jx, jy);
1112- const BoutReal* Fxp = f_temp (jx + 1 , jy);
1113- const BoutReal* Gxm = g_temp (jx - 1 , jy);
1114- const BoutReal* Gx = g_temp (jx, jy);
1115- const BoutReal* Gxp = g_temp (jx + 1 , jy);
1116- for (int jz = 0 ; jz < mesh->LocalNz ; jz++) {
1117- #if BOUT_USE_METRIC_3D
1118- const BoutReal spacingFactor =
1119- 1.0 / (12 * metric->dz (jx, jy, jz) * metric->dx (jx, jy, jz));
1120- #endif
1121- const int jzp = jz + 1 < ncz ? jz + 1 : 0 ;
1122- // Above is alternative to const int jzp = (jz + 1) % ncz;
1123- const int jzm = jz - 1 >= 0 ? jz - 1 : ncz - 1 ;
1124- // Above is alternative to const int jzm = (jz - 1 + ncz) % ncz;
1125-
1126- // J++ = DDZ(f)*DDX(g) - DDX(f)*DDZ(g)
1127- // NOLINTNEXTLINE
1128- BoutReal Jpp = ((Fx[jzp] - Fx[jzm]) * (Gxp[jz] - Gxm[jz])
1129- - (Fxp[jz] - Fxm[jz]) * (Gx[jzp] - Gx[jzm]));
1130-
1131- // J+x
1132- // NOLINTNEXTLINE
1133- BoutReal Jpx =
1134- (Gxp[jz] * (Fxp[jzp] - Fxp[jzm]) - Gxm[jz] * (Fxm[jzp] - Fxm[jzm])
1135- - Gx[jzp] * (Fxp[jzp] - Fxm[jzp]) + Gx[jzm] * (Fxp[jzm] - Fxm[jzm]));
1136-
1137- // Jx+
1138- // NOLINTNEXTLINE
1139- BoutReal Jxp =
1140- (Gxp[jzp] * (Fx[jzp] - Fxp[jz]) - Gxm[jzm] * (Fxm[jz] - Fx[jzm])
1141- - Gxm[jzp] * (Fx[jzp] - Fxm[jz]) + Gxp[jzm] * (Fxp[jz] - Fx[jzm]));
1142-
1143- result (jx, jy, jz) = (Jpp + Jpx + Jxp) * spacingFactor;
1144- }
1145- }
1146- }
1147-
1148- break ;
1149- }
11501053 case BRACKET_SIMPLE: {
11511054 // Use a subset of terms for comparison to BOUT-06
11521055 result = VDDX (DDZ (f, outloc), g, outloc) + VDDZ (-DDX (f, outloc), g, outloc);
0 commit comments