Skip to content

Commit 72097bb

Browse files
committed
Remove coords from flux calc
1 parent 5919b1c commit 72097bb

1 file changed

Lines changed: 6 additions & 12 deletions

File tree

src/hydro/hydro.cpp

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)