Skip to content

Commit 4c3c1b7

Browse files
committed
ok
1 parent 11d3a3d commit 4c3c1b7

File tree

3 files changed

+21
-24
lines changed

3 files changed

+21
-24
lines changed

multi/main.f90

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,6 @@ program main
181181
!allocate variables
182182
!NS variables
183183
allocate(u(piX%shape(1),piX%shape(2),piX%shape(3)),v(piX%shape(1),piX%shape(2),piX%shape(3)),w(piX%shape(1),piX%shape(2),piX%shape(3))) !velocity vector
184-
allocate(ustar(piX%shape(1),piX%shape(2),piX%shape(3)),vstar(piX%shape(1),piX%shape(2),piX%shape(3)),wstar(piX%shape(1),piX%shape(2),piX%shape(3))) ! provisional velocity field
185184
allocate(rhsu(piX%shape(1),piX%shape(2),piX%shape(3)),rhsv(piX%shape(1),piX%shape(2),piX%shape(3)),rhsw(piX%shape(1),piX%shape(2),piX%shape(3))) ! right hand side u,v,w
186185
allocate(rhsu_o(piX%shape(1),piX%shape(2),piX%shape(3)),rhsv_o(piX%shape(1),piX%shape(2),piX%shape(3)),rhsw_o(piX%shape(1),piX%shape(2),piX%shape(3))) ! right hand side u,v,w
187186
allocate(div(piX%shape(1),piX%shape(2),piX%shape(3)))
@@ -652,9 +651,12 @@ program main
652651
do k=1+halo_ext, piX%shape(3)-halo_ext
653652
do j=1+halo_ext, piX%shape(2)-halo_ext
654653
do i=1,nx
655-
ustar(i,j,k) = u(i,j,k) + dt*(alpha*rhsu(i,j,k)-beta*rhsu_o(i,j,k))
656-
vstar(i,j,k) = v(i,j,k) + dt*(alpha*rhsv(i,j,k)-beta*rhsv_o(i,j,k))
657-
wstar(i,j,k) = w(i,j,k) + dt*(alpha*rhsw(i,j,k)-beta*rhsw_o(i,j,k))
654+
u(i,j,k) = u(i,j,k) + dt*(alpha*rhsu(i,j,k)-beta*rhsu_o(i,j,k))
655+
v(i,j,k) = v(i,j,k) + dt*(alpha*rhsv(i,j,k)-beta*rhsv_o(i,j,k))
656+
w(i,j,k) = w(i,j,k) + dt*(alpha*rhsw(i,j,k)-beta*rhsw_o(i,j,k))
657+
rhsu_o(i,j,k)=rhsu(i,j,k)
658+
rhsv_o(i,j,k)=rhsv(i,j,k)
659+
rhsw_o(i,j,k)=rhsw(i,j,k)
658660
enddo
659661
enddo
660662
enddo
@@ -664,24 +666,20 @@ program main
664666
! After first step move to AB2
665667
alpha=1.5d0
666668
beta= 0.5d0
667-
!$acc kernels
668-
rhsu_o=rhsu
669-
rhsv_o=rhsv
670-
rhsw_o=rhsw
671-
!$acc end kernels
669+
672670

673671
! 5.3 update halos (y and z directions), required to then compute the RHS of Poisson equation because of staggered grid
674672
!$acc host_data use_device(ustar)
675-
CHECK_CUDECOMP_EXIT(cudecompUpdateHalosX(handle, grid_desc, ustar, work_halo_d, CUDECOMP_DOUBLE, piX%halo_extents, halo_periods, 2))
676-
CHECK_CUDECOMP_EXIT(cudecompUpdateHalosX(handle, grid_desc, ustar, work_halo_d, CUDECOMP_DOUBLE, piX%halo_extents, halo_periods, 3))
673+
CHECK_CUDECOMP_EXIT(cudecompUpdateHalosX(handle, grid_desc, u, work_halo_d, CUDECOMP_DOUBLE, piX%halo_extents, halo_periods, 2))
674+
CHECK_CUDECOMP_EXIT(cudecompUpdateHalosX(handle, grid_desc, u, work_halo_d, CUDECOMP_DOUBLE, piX%halo_extents, halo_periods, 3))
677675
!$acc end host_data
678676
!$acc host_data use_device(vstar)
679-
CHECK_CUDECOMP_EXIT(cudecompUpdateHalosX(handle, grid_desc, vstar, work_halo_d, CUDECOMP_DOUBLE, piX%halo_extents, halo_periods, 2))
680-
CHECK_CUDECOMP_EXIT(cudecompUpdateHalosX(handle, grid_desc, vstar, work_halo_d, CUDECOMP_DOUBLE, piX%halo_extents, halo_periods, 3))
677+
CHECK_CUDECOMP_EXIT(cudecompUpdateHalosX(handle, grid_desc, v, work_halo_d, CUDECOMP_DOUBLE, piX%halo_extents, halo_periods, 2))
678+
CHECK_CUDECOMP_EXIT(cudecompUpdateHalosX(handle, grid_desc, v, work_halo_d, CUDECOMP_DOUBLE, piX%halo_extents, halo_periods, 3))
681679
!$acc end host_data
682680
!$acc host_data use_device(wstar)
683-
CHECK_CUDECOMP_EXIT(cudecompUpdateHalosX(handle, grid_desc, wstar, work_halo_d, CUDECOMP_DOUBLE, piX%halo_extents, halo_periods, 2))
684-
CHECK_CUDECOMP_EXIT(cudecompUpdateHalosX(handle, grid_desc, wstar, work_halo_d, CUDECOMP_DOUBLE, piX%halo_extents, halo_periods, 3))
681+
CHECK_CUDECOMP_EXIT(cudecompUpdateHalosX(handle, grid_desc, w, work_halo_d, CUDECOMP_DOUBLE, piX%halo_extents, halo_periods, 2))
682+
CHECK_CUDECOMP_EXIT(cudecompUpdateHalosX(handle, grid_desc, w, work_halo_d, CUDECOMP_DOUBLE, piX%halo_extents, halo_periods, 3))
685683
!$acc end host_data
686684
!########################################################################################################################################
687685
! END STEP 5: USTAR COMPUTATION
@@ -709,9 +707,9 @@ program main
709707
jp=j+1
710708
kp=k+1
711709
if (ip > nx) ip=1
712-
rhsp(i,j,k) = (rho*dxi/dt)*(ustar(ip,j,k)-ustar(i,j,k))
713-
rhsp(i,j,k) = rhsp(i,j,k) + (rho*dxi/dt)*(vstar(i,jp,k)-vstar(i,j,k))
714-
rhsp(i,j,k) = rhsp(i,j,k) + (rho*dxi/dt)*(wstar(i,j,kp)-wstar(i,j,k))
710+
rhsp(i,j,k) = (rho*dxi/dt)*(u(ip,j,k)-u(i,j,k))
711+
rhsp(i,j,k) = rhsp(i,j,k) + (rho*dxi/dt)*(v(i,jp,k)-v(i,j,k))
712+
rhsp(i,j,k) = rhsp(i,j,k) + (rho*dxi/dt)*(w(i,j,kp)-w(i,j,k))
715713
enddo
716714
enddo
717715
enddo
@@ -869,9 +867,9 @@ program main
869867
jm=j-1
870868
km=k-1
871869
if (im < 1) im=nx
872-
u(i,j,k)=ustar(i,j,k) - dt/rho*(p(i,j,k)-p(im,j,k))*dxi
873-
v(i,j,k)=vstar(i,j,k) - dt/rho*(p(i,j,k)-p(i,jm,k))*dxi
874-
w(i,j,k)=wstar(i,j,k) - dt/rho*(p(i,j,k)-p(i,j,km))*dxi
870+
u(i,j,k)=u(i,j,k) - dt/rho*(p(i,j,k)-p(im,j,k))*dxi
871+
v(i,j,k)=v(i,j,k) - dt/rho*(p(i,j,k)-p(i,jm,k))*dxi
872+
w(i,j,k)=w(i,j,k) - dt/rho*(p(i,j,k)-p(i,j,km))*dxi
875873
enddo
876874
enddo
877875
enddo

multi/module.f90

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ end module cudecompvar
3838

3939
module velocity
4040
double precision, allocatable :: u(:,:,:), v(:,:,:), w(:,:,:)
41-
double precision, allocatable :: ustar(:,:,:), vstar(:,:,:), wstar(:,:,:)
4241
double precision, allocatable :: rhsu(:,:,:), rhsv(:,:,:), rhsw(:,:,:)
4342
double precision, allocatable :: rhsu_o(:,:,:), rhsv_o(:,:,:), rhsw_o(:,:,:)
4443
complex(8), allocatable :: rhsp_complex(:,:,:)
@@ -53,7 +52,7 @@ end module velocity
5352
module phase
5453
double precision, allocatable :: phi(:,:,:), rhsphi(:,:,:), psidi(:,:,:), rhsphi_o(:,:,:)
5554
double precision, allocatable :: normx(:,:,:), normy(:,:,:), normz(:,:,:)
56-
double precision, allocatable :: chempot(:,:,:), gradphix(:,:,:), gradphiy(:,:,:), gradphiz(:,:,:)
55+
double precision, allocatable :: chempot(:,:,:)
5756
double precision, allocatable :: fxst(:,:,:), fyst(:,:,:), fzst(:,:,:)
5857
end module phase
5958

0 commit comments

Comments
 (0)