Skip to content

Commit

Permalink
Update corner coupling to match that in AMReX-Hydro (#1161)
Browse files Browse the repository at this point in the history
* Update corner coupling to match that in AMReX-Hydro

* fix formatting

* Fix formatting

* ci fixes

---------

Co-authored-by: Marc Henry de Frahan <[email protected]>
  • Loading branch information
asalmgren and marchdf authored Jul 26, 2024
1 parent 387d31b commit ce6ba26
Showing 1 changed file with 78 additions and 156 deletions.
234 changes: 78 additions & 156 deletions amr-wind/convection/incflo_godunov_ppm.H
Original file line number Diff line number Diff line change
Expand Up @@ -400,38 +400,25 @@ AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void Godunov_corner_couple_yx(
int n,
amrex::Real dt,
amrex::Real dx,
bool iconserv,
bool /*iconserv*/,
amrex::Real lo,
amrex::Real hi,
amrex::Array4<amrex::Real const> const& s,
amrex::Array4<amrex::Real const> const& mac,
amrex::Array4<amrex::Real const> const& state)
{
if (iconserv) {
lo1 = lo -
dt / (3.e0 * dx) *
(state(i + 1, j - 1, k, n) * mac(i + 1, j - 1, k) -
state(i, j - 1, k, n) * mac(i, j - 1, k))
// divu = 0
//- dt/(3.e0) *s(i,j-1,k,n)*divu_cc(i,j-1,k)
+ dt / (3.e0 * dx) * s(i, j - 1, k, n) *
(mac(i + 1, j - 1, k) - mac(i, j - 1, k));

hi1 = hi -
dt / (3.e0 * dx) *
(state(i + 1, j, k, n) * mac(i + 1, j, k) -
state(i, j, k, n) * mac(i, j, k))
// divu = 0
//- dt/(3.e0) *s(i,j,k,n)*divu_cc(i,j,k)
+ dt / (3.e0 * dx) * s(i, j, k, n) *
(mac(i + 1, j, k) - mac(i, j, k));
} else {
lo1 = lo - dt / (6.e0 * dx) *
(mac(i + 1, j - 1, k) + mac(i, j - 1, k)) *
(state(i + 1, j - 1, k, n) - state(i, j - 1, k, n));
hi1 = hi - dt / (6.e0 * dx) * (mac(i + 1, j, k) + mac(i, j, k)) *
(state(i + 1, j, k, n) - state(i, j, k, n));
}
lo1 = lo -
dt / (amrex::Real(3.0) * dx) *
(state(i + 1, j - 1, k, n) * mac(i + 1, j - 1, k) -
state(i, j - 1, k, n) * mac(i, j - 1, k)) +
dt / (amrex::Real(3.0) * dx) * s(i, j - 1, k, n) *
(mac(i + 1, j - 1, k) - mac(i, j - 1, k));
hi1 = hi -
dt / (amrex::Real(3.0) * dx) *
(state(i + 1, j, k, n) * mac(i + 1, j, k) -
state(i, j, k, n) * mac(i, j, k)) +
dt / (amrex::Real(3.0) * dx) * s(i, j, k, n) *
(mac(i + 1, j, k) - mac(i, j, k));
}

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void Godunov_corner_couple_zx(
Expand All @@ -443,38 +430,25 @@ AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void Godunov_corner_couple_zx(
int n,
amrex::Real dt,
amrex::Real dx,
bool iconserv,
bool /*iconserv*/,
amrex::Real lo,
amrex::Real hi,
amrex::Array4<amrex::Real const> const& s,
amrex::Array4<amrex::Real const> const& mac,
amrex::Array4<amrex::Real const> const& state)
{
if (iconserv) {
lo1 = lo -
dt / (3.e0 * dx) *
(state(i + 1, j, k - 1, n) * mac(i + 1, j, k - 1) -
state(i, j, k - 1, n) * mac(i, j, k - 1))
// divu = 0
//- dt/(3.e0) *s(i,j,k-1,n)*divu_cc(i,j,k-1)
+ dt / (3.e0 * dx) * s(i, j, k - 1, n) *
(mac(i + 1, j, k - 1) - mac(i, j, k - 1));

hi1 = hi -
dt / (3.e0 * dx) *
(state(i + 1, j, k, n) * mac(i + 1, j, k) -
state(i, j, k, n) * mac(i, j, k))
// divu = 0
//- dt/(3.e0) *s(i,j,k,n)*divu_cc(i,j,k)
+ dt / (3.e0 * dx) * s(i, j, k, n) *
(mac(i + 1, j, k) - mac(i, j, k));
} else {
lo1 = lo - dt / (6.e0 * dx) *
(mac(i + 1, j, k - 1) + mac(i, j, k - 1)) *
(state(i + 1, j, k - 1, n) - state(i, j, k - 1, n));
hi1 = hi - dt / (6.e0 * dx) * (mac(i + 1, j, k) + mac(i, j, k)) *
(state(i + 1, j, k, n) - state(i, j, k, n));
}
lo1 = lo -
dt / (amrex::Real(3.0) * dx) *
(state(i + 1, j, k - 1, n) * mac(i + 1, j, k - 1) -
state(i, j, k - 1, n) * mac(i, j, k - 1)) +
dt / (amrex::Real(3.0) * dx) * s(i, j, k - 1, n) *
(mac(i + 1, j, k - 1) - mac(i, j, k - 1));
hi1 = hi -
dt / (amrex::Real(3.0) * dx) *
(state(i + 1, j, k, n) * mac(i + 1, j, k) -
state(i, j, k, n) * mac(i, j, k)) +
dt / (amrex::Real(3.0) * dx) * s(i, j, k, n) *
(mac(i + 1, j, k) - mac(i, j, k));
}

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void Godunov_corner_couple_xy(
Expand All @@ -486,38 +460,25 @@ AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void Godunov_corner_couple_xy(
int n,
amrex::Real dt,
amrex::Real dy,
bool iconserv,
bool /*iconserv*/,
amrex::Real lo,
amrex::Real hi,
amrex::Array4<amrex::Real const> const& s,
amrex::Array4<amrex::Real const> const& mac,
amrex::Array4<amrex::Real const> const& state)
{
if (iconserv) {
lo1 = lo -
dt / (3.e0 * dy) *
(state(i - 1, j + 1, k, n) * mac(i - 1, j + 1, k) -
state(i - 1, j, k, n) * mac(i - 1, j, k))
// divu = 0
//- dt/3.e0 *s(i-1,j,k,n)*divu_cc(i-1,j,k)
+ dt / (3.e0 * dy) * s(i - 1, j, k, n) *
(mac(i - 1, j + 1, k) - mac(i - 1, j, k));

hi1 = hi -
dt / (3.e0 * dy) *
(state(i, j + 1, k, n) * mac(i, j + 1, k) -
state(i, j, k, n) * mac(i, j, k))
// divu = 0
//- dt/3.e0 *s(i,j,k,n)*divu_cc(i,j,k)
+ dt / (3.e0 * dy) * s(i, j, k, n) *
(mac(i, j + 1, k) - mac(i, j, k));
} else {
lo1 = lo - dt / (6.e0 * dy) *
(mac(i - 1, j + 1, k) + mac(i - 1, j, k)) *
(state(i - 1, j + 1, k, n) - state(i - 1, j, k, n));
hi1 = hi - dt / (6.e0 * dy) * (mac(i, j + 1, k) + mac(i, j, k)) *
(state(i, j + 1, k, n) - state(i, j, k, n));
}
lo1 = lo -
dt / (amrex::Real(3.0) * dy) *
(state(i - 1, j + 1, k, n) * mac(i - 1, j + 1, k) -
state(i - 1, j, k, n) * mac(i - 1, j, k)) +
dt / (amrex::Real(3.0) * dy) * s(i - 1, j, k, n) *
(mac(i - 1, j + 1, k) - mac(i - 1, j, k));
hi1 = hi -
dt / (amrex::Real(3.0) * dy) *
(state(i, j + 1, k, n) * mac(i, j + 1, k) -
state(i, j, k, n) * mac(i, j, k)) +
dt / (amrex::Real(3.0) * dy) * s(i, j, k, n) *
(mac(i, j + 1, k) - mac(i, j, k));
}

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void Godunov_corner_couple_zy(
Expand All @@ -529,38 +490,25 @@ AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void Godunov_corner_couple_zy(
int n,
amrex::Real dt,
amrex::Real dy,
bool iconserv,
bool /*iconserv*/,
amrex::Real lo,
amrex::Real hi,
amrex::Array4<amrex::Real const> const& s,
amrex::Array4<amrex::Real const> const& mac,
amrex::Array4<amrex::Real const> const& state)
{
if (iconserv) {
lo1 = lo -
dt / (3.e0 * dy) *
(state(i, j + 1, k - 1, n) * mac(i, j + 1, k - 1) -
state(i, j, k - 1, n) * mac(i, j, k - 1))
// divu = 0
//- dt/(3.e0) *s(i,j,k-1,n)*divu_cc(i,j,k-1)
+ dt / (3.e0 * dy) * s(i, j, k - 1, n) *
(mac(i, j + 1, k - 1) - mac(i, j, k - 1));

hi1 = hi -
dt / (3.e0 * dy) *
(state(i, j + 1, k, n) * mac(i, j + 1, k) -
state(i, j, k, n) * mac(i, j, k))
// divu = 0
//- dt/(3.e0) *s(i,j,k,n)*divu_cc(i,j,k)
+ dt / (3.e0 * dy) * s(i, j, k, n) *
(mac(i, j + 1, k) - mac(i, j, k));
} else {
lo1 = lo - dt / (6.e0 * dy) *
(mac(i, j + 1, k - 1) + mac(i, j, k - 1)) *
(state(i, j + 1, k - 1, n) - state(i, j, k - 1, n));
hi1 = hi - dt / (6.e0 * dy) * (mac(i, j + 1, k) + mac(i, j, k)) *
(state(i, j + 1, k, n) - state(i, j, k, n));
}
lo1 = lo -
dt / (amrex::Real(3.0) * dy) *
(state(i, j + 1, k - 1, n) * mac(i, j + 1, k - 1) -
state(i, j, k - 1, n) * mac(i, j, k - 1)) +
dt / (amrex::Real(3.0) * dy) * s(i, j, k - 1, n) *
(mac(i, j + 1, k - 1) - mac(i, j, k - 1));
hi1 = hi -
dt / (amrex::Real(3.0) * dy) *
(state(i, j + 1, k, n) * mac(i, j + 1, k) -
state(i, j, k, n) * mac(i, j, k)) +
dt / (amrex::Real(3.0) * dy) * s(i, j, k, n) *
(mac(i, j + 1, k) - mac(i, j, k));
}

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void Godunov_corner_couple_xz(
Expand All @@ -572,38 +520,25 @@ AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void Godunov_corner_couple_xz(
int n,
amrex::Real dt,
amrex::Real dz,
bool iconserv,
bool /*iconserv*/,
amrex::Real lo,
amrex::Real hi,
amrex::Array4<amrex::Real const> const& s,
amrex::Array4<amrex::Real const> const& mac,
amrex::Array4<amrex::Real const> const& state)
{
if (iconserv) {
lo1 = lo -
dt / (3.e0 * dz) *
(state(i - 1, j, k + 1, n) * mac(i - 1, j, k + 1) -
state(i - 1, j, k, n) * mac(i - 1, j, k))
// divu = 0
//- dt/(3.e0) *s(i-1,j,k,n)*divu_cc(i-1,j,k)
+ dt / (3.e0 * dz) * s(i - 1, j, k, n) *
(mac(i - 1, j, k + 1) - mac(i - 1, j, k));

hi1 = hi -
dt / (3.e0 * dz) *
(state(i, j, k + 1, n) * mac(i, j, k + 1) -
state(i, j, k, n) * mac(i, j, k))
// divu = 0
//- dt/(3.e0) *s(i,j,k,n)*divu_cc(i,j,k)
+ dt / (3.e0 * dz) * s(i, j, k, n) *
(mac(i, j, k + 1) - mac(i, j, k));
} else {
lo1 = lo - dt / (6.e0 * dz) *
(mac(i - 1, j, k + 1) + mac(i - 1, j, k)) *
(state(i - 1, j, k + 1, n) - state(i - 1, j, k, n));
hi1 = hi - dt / (6.e0 * dz) * (mac(i, j, k + 1) + mac(i, j, k)) *
(state(i, j, k + 1, n) - state(i, j, k, n));
}
lo1 = lo -
dt / (amrex::Real(3.0) * dz) *
(state(i - 1, j, k + 1, n) * mac(i - 1, j, k + 1) -
state(i - 1, j, k, n) * mac(i - 1, j, k)) +
dt / (amrex::Real(3.0) * dz) * s(i - 1, j, k, n) *
(mac(i - 1, j, k + 1) - mac(i - 1, j, k));
hi1 = hi -
dt / (amrex::Real(3.0) * dz) *
(state(i, j, k + 1, n) * mac(i, j, k + 1) -
state(i, j, k, n) * mac(i, j, k)) +
dt / (amrex::Real(3.0) * dz) * s(i, j, k, n) *
(mac(i, j, k + 1) - mac(i, j, k));
}

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void Godunov_corner_couple_yz(
Expand All @@ -615,38 +550,25 @@ AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void Godunov_corner_couple_yz(
int n,
amrex::Real dt,
amrex::Real dz,
bool iconserv,
bool /*iconserv*/,
amrex::Real lo,
amrex::Real hi,
amrex::Array4<amrex::Real const> const& s,
amrex::Array4<amrex::Real const> const& mac,
amrex::Array4<amrex::Real const> const& state)
{
if (iconserv) {
lo1 = lo -
dt / (3.e0 * dz) *
(state(i, j - 1, k + 1, n) * mac(i, j - 1, k + 1) -
state(i, j - 1, k, n) * mac(i, j - 1, k))
// divu = 0
//- dt/(3.e0) *s(i,j-1,k,n)*divu_cc(i,j-1,k)
+ dt / (3.e0 * dz) * s(i, j - 1, k, n) *
(mac(i, j - 1, k + 1) - mac(i, j - 1, k));

hi1 = hi -
dt / (3.e0 * dz) *
(state(i, j, k + 1, n) * mac(i, j, k + 1) -
state(i, j, k, n) * mac(i, j, k))
// divu = 0
//- dt/(3.e0) *s(i,j,k,n)*divu_cc(i,j,k)
+ dt / (3.e0 * dz) * s(i, j, k, n) *
(mac(i, j, k + 1) - mac(i, j, k));
} else {
lo1 = lo - dt / (6.e0 * dz) *
(mac(i, j - 1, k + 1) + mac(i, j - 1, k)) *
(state(i, j - 1, k + 1, n) - state(i, j - 1, k, n));
hi1 = hi - dt / (6.e0 * dz) * (mac(i, j, k + 1) + mac(i, j, k)) *
(state(i, j, k + 1, n) - state(i, j, k, n));
}
lo1 = lo -
dt / (amrex::Real(3.0) * dz) *
(state(i, j - 1, k + 1, n) * mac(i, j - 1, k + 1) -
state(i, j - 1, k, n) * mac(i, j - 1, k)) +
dt / (amrex::Real(3.0) * dz) * s(i, j - 1, k, n) *
(mac(i, j - 1, k + 1) - mac(i, j - 1, k));
hi1 = hi -
dt / (amrex::Real(3.0) * dz) *
(state(i, j, k + 1, n) * mac(i, j, k + 1) -
state(i, j, k, n) * mac(i, j, k)) +
dt / (amrex::Real(3.0) * dz) * s(i, j, k, n) *
(mac(i, j, k + 1) - mac(i, j, k));
}

} // namespace
Expand Down

0 comments on commit ce6ba26

Please sign in to comment.