20 const Array4<Real >& phi,
21 const Array4<Real const>& Hz,
22 const Array4<Real const>& Dphi_avg1,
23 const Array4<Real >& DC,
24 const Array4<Real >& CF,
25 const Array4<Real const>& pm_or_pn,
26 const Array4<Real const>& msk,
27 const int nnew,
const int N)
30 ParallelFor(makeSlab(phi_bx,2,0),
31 [=] AMREX_GPU_DEVICE (
int i,
int j,
int )
33 Real Hzk_on_face = 0.5_rt*(Hz(i-ioff,j-joff,0)+Hz(i,j,0));
34 CF(i,j,-1) = Hzk_on_face;
35 DC(i,j,-1) = phi(i,j,0,nnew)*Hzk_on_face;
37 for (
int k=1; k<=N; k++) {
38 Hzk_on_face = 0.5_rt*(Hz(i-ioff,j-joff,k)+Hz(i,j,k));
39 CF(i,j,-1) += Hzk_on_face;
40 DC(i,j,-1) += phi(i,j,k,nnew)*Hzk_on_face;
44 ParallelFor(makeSlab(phi_bx,2,0), [=] AMREX_GPU_DEVICE (
int i,
int j,
int )
46 Real on_u_or_om_v = 2.0_rt / (pm_or_pn(i-ioff,j-joff,0) + pm_or_pn(i,j,0));
47 Real cff1=1.0_rt/(CF(i,j,-1)*(on_u_or_om_v));
48 DC(i,j,-1) = (DC(i,j,-1)*(on_u_or_om_v) - Dphi_avg1(i,j,0))*cff1;
51 ParallelFor(phi_bx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k)
53 phi(i,j,k) -= DC(i,j,-1);
54 phi(i,j,k) *= msk(i,j,0);
void vert_mean_3d(const amrex::Box &bx, const int ioff, const int joff, const amrex::Array4< amrex::Real > &phi, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &Dphi_avg1, const amrex::Array4< amrex::Real > &DC, const amrex::Array4< amrex::Real > &CF, const amrex::Array4< amrex::Real const > &pm_or_pn, const amrex::Array4< amrex::Real const > &msk, const int nnew, const int N)
Adjust 3D momentum variables based on vertical mean momentum.