8
8
#include < AMReX_Array.H>
9
9
10
10
#include " swm_mini_app_utils.h"
11
-
11
+ # include " swm_mini_app_kernels.h "
12
12
13
13
void ParseInput (int & nx, int & ny,
14
14
amrex::Real & dx, amrex::Real & dy,
@@ -320,10 +320,13 @@ void Copy(const amrex::MultiFab & src, amrex::MultiFab & dest)
320
320
return ;
321
321
}
322
322
323
- void UpdateIntermediateVariables (amrex::Real fsdx , amrex::Real fsdy , const amrex::Geometry& geom,
323
+ void UpdateIntermediateVariables (amrex::Real dx , amrex::Real dy , const amrex::Geometry& geom,
324
324
const amrex::MultiFab& p, const amrex::MultiFab& u, const amrex::MultiFab& v,
325
325
amrex::MultiFab& cu, amrex::MultiFab& cv, amrex::MultiFab& h, amrex::MultiFab& z)
326
326
{
327
+ const double fsdx = 4.0 /dx;
328
+ const double fsdy = 4.0 /dy;
329
+
327
330
for (amrex::MFIter mfi (p); mfi.isValid (); ++mfi)
328
331
{
329
332
const amrex::Box& bx = mfi.validbox ();
@@ -341,10 +344,9 @@ void UpdateIntermediateVariables(amrex::Real fsdx, amrex::Real fsdy, const amrex
341
344
342
345
amrex::ParallelFor (bx, [=] AMREX_GPU_DEVICE (int i, int j, int k)
343
346
{
344
- cu_array (i,j,k) = 0.5 *(p_array (i,j,k) + p_array (i+1 ,j,k))*u_array (i,j,k);
345
- cv_array (i,j,k) = 0.5 *(p_array (i,j,k) + p_array (i,j+1 ,k))*v_array (i,j,k);
346
- z_array (i,j,k) = (fsdx*(v_array (i+1 ,j,k)-v_array (i,j,k)) + fsdy*(u_array (i,j+1 ,k)-u_array (i,j,k)))/(p_array (i,j,k)+p_array (i+1 ,j,k)+p_array (i,j+1 ,k)+p_array (i+1 ,j+1 ,k));
347
- h_array (i,j,k) = p_array (i,j,k) + 0.25 *(u_array (i-1 ,j,k)*u_array (i-1 ,j,k) + u_array (i,j,k)*u_array (i,j,k) + v_array (i,j-1 ,k)*v_array (i,j-1 ,k) + v_array (i,j,k)*v_array (i,j,k));
347
+ UpdateIntermediateVariablesKernel (i, j, k, fsdx, fsdy,
348
+ p_array, u_array, v_array,
349
+ cu_array, cv_array, h_array, z_array);
348
350
});
349
351
}
350
352
0 commit comments