@@ -1089,6 +1089,7 @@ TaskStatus CalculateFluxes(MeshData<Real> *u0_data, MeshData<Real> *u1_data,
10891089 suffix = " HO" ;
10901090 }
10911091
1092+ const auto dx1 = u0_cons_pack.GetCoords (0 ).Dxc <X1DIR>(0 );
10921093 parthenon::par_for_outer (
10931094 DEFAULT_OUTER_LOOP_PATTERN, " x1 flux" + suffix + " TVR" , DevExecSpace (),
10941095 scratch_size_in_bytes, scratch_level, 0 , u0_cons_pack.GetDim (5 ) - 1 , kl, ku, jl, ju,
@@ -1108,17 +1109,14 @@ TaskStatus CalculateFluxes(MeshData<Real> *u0_data, MeshData<Real> *u1_data,
11081109 riemann.Solve (member, ib.s , ib.e + 1 , IV1, wl, wr, flx, eos, c_h);
11091110 member.team_barrier ();
11101111
1111- const auto &coords = u0_cons_pack.GetCoords (b);
11121112 // Now directly update
11131113 const int Ni = ib.e - ib.s + 1 ;
11141114 const int NvNi = u0_cons_pack.GetDim (4 ) * Ni;
11151115 auto tvr = Kokkos::TeamVectorRange (member, NvNi);
11161116 Kokkos::parallel_for (tvr, [&](const int idx) {
11171117 const int v = idx / Ni;
11181118 const int i = idx % Ni + ib.s ;
1119- const auto du = -(coords.FaceArea <X1DIR>(k, j, i + 1 ) * flx (v, i + 1 ) -
1120- coords.FaceArea <X1DIR>(k, j, i) * flx (v, i)) /
1121- coords.CellVolume (k, j, i);
1119+ const auto du = -(flx (v, i + 1 ) - flx (v, i)) / dx1;
11221120
11231121 // WARNING: removing gam0 is specific to the VL2 integrator
11241122 u0_cons_pack (b, v, k, j, i) = // gam0 * u0_cons_pack(b, v, k, j, i) +
@@ -1137,6 +1135,7 @@ TaskStatus CalculateFluxes(MeshData<Real> *u0_data, MeshData<Real> *u1_data,
11371135 else // 3D
11381136 kl = kb.s - 1 , ku = kb.e + 1 ;
11391137
1138+ const auto dx2 = u0_cons_pack.GetCoords (0 ).Dxc <X2DIR>(0 );
11401139 parthenon::par_for_outer (
11411140 DEFAULT_OUTER_LOOP_PATTERN, " x2 flux" + suffix + " TVR" , DevExecSpace (),
11421141 scratch_size_in_bytes, scratch_level, 0 , u0_cons_pack.GetDim (5 ) - 1 , kl, ku,
@@ -1162,17 +1161,14 @@ TaskStatus CalculateFluxes(MeshData<Real> *u0_data, MeshData<Real> *u1_data,
11621161 riemann.Solve (member, il, iu, IV2, wl, wr, flxr, eos, c_h);
11631162 member.team_barrier ();
11641163 if (j > jb.s ) {
1165- const auto &coords = u0_cons_pack.GetCoords (b);
11661164 // Now directly update
11671165 const int Ni = iu - il + 1 ;
11681166 const int NvNi = u0_cons_pack.GetDim (4 ) * Ni;
11691167 auto tvr = Kokkos::TeamVectorRange (member, NvNi);
11701168 Kokkos::parallel_for (tvr, [&](const int idx) {
11711169 const int v = idx / Ni;
11721170 const int i = idx % Ni + il;
1173- const auto du = -(coords.FaceArea <X2DIR>(k, j, i) * flxr (v, i) -
1174- coords.FaceArea <X2DIR>(k, j - 1 , i) * flxl (v, i)) /
1175- coords.CellVolume (k, j - 1 , i);
1171+ const auto du = -(flxr (v, i) - flxl (v, i)) / dx2;
11761172
11771173 // WARNING: this is specific to the VL2 integrator
11781174 u0_cons_pack (b, v, k, j - 1 , i) +=
@@ -1200,6 +1196,7 @@ TaskStatus CalculateFluxes(MeshData<Real> *u0_data, MeshData<Real> *u1_data,
12001196 // set the loop limits
12011197 il = ib.s - 1 , iu = ib.e + 1 , jl = jb.s - 1 , ju = jb.e + 1 ;
12021198
1199+ const auto dx3 = u0_cons_pack.GetCoords (0 ).Dxc <X3DIR>(0 );
12031200 parthenon::par_for_outer (
12041201 DEFAULT_OUTER_LOOP_PATTERN, " x3 flux" + suffix + " TVR" , DevExecSpace (),
12051202 scratch_size_in_bytes, scratch_level, 0 , u0_cons_pack.GetDim (5 ) - 1 , jl, ju,
@@ -1225,17 +1222,14 @@ TaskStatus CalculateFluxes(MeshData<Real> *u0_data, MeshData<Real> *u1_data,
12251222 riemann.Solve (member, il, iu, IV3, wl, wr, flxr, eos, c_h);
12261223 member.team_barrier ();
12271224 if (k > kb.s ) {
1228- const auto &coords = u0_cons_pack.GetCoords (b);
12291225 // Now directly update
12301226 const int Ni = iu - il + 1 ;
12311227 const int NvNi = u0_cons_pack.GetDim (4 ) * Ni;
12321228 auto tvr = Kokkos::TeamVectorRange (member, NvNi);
12331229 Kokkos::parallel_for (tvr, [&](const int idx) {
12341230 const int v = idx / Ni;
12351231 const int i = idx % Ni + il;
1236- const auto du = -(coords.FaceArea <X3DIR>(k, j, i) * flxr (v, i) -
1237- coords.FaceArea <X3DIR>(k - 1 , j, i) * flxl (v, i)) /
1238- coords.CellVolume (k - 1 , j, i);
1232+ const auto du = -(flxr (v, i) - flxl (v, i)) / dx3;
12391233
12401234 // WARNING: this is specific to the VL2 integrator
12411235 u0_cons_pack (b, v, k - 1 , j, i) +=
0 commit comments