[Commits] [svn:einsteintoolkit] GRHydro/trunk/src/ (Rev. 631)

rhaas at tapir.caltech.edu rhaas at tapir.caltech.edu
Tue Apr 15 14:49:46 CDT 2014


User: rhaas
Date: 2014/04/15 02:49 PM

Modified:
 /trunk/src/
  GRHydro_CalcUpdate.F90

Log:
 GRHydro: low level optimizations

File Changes:

Directory: /trunk/src/
======================

File [modified]: GRHydro_CalcUpdate.F90
Delta lines: +11 -7
===================================================================
--- trunk/src/GRHydro_CalcUpdate.F90	2014-04-15 19:49:43 UTC (rev 630)
+++ trunk/src/GRHydro_CalcUpdate.F90	2014-04-15 19:49:45 UTC (rev 631)
@@ -39,7 +39,7 @@
   DECLARE_CCTK_FUNCTIONS
 
   CCTK_INT :: i,j,k,itracer
-  CCTK_REAL :: idx, alp_l, alp_r, Bcons_l, Bcons_r, alp_tmp
+  CCTK_REAL :: idx, idy, idz, alp_l, alp_r, Bcons_l, Bcons_r, alp_tmp
 
   idx = 1.d0 / CCTK_DELTA_SPACE(flux_direction)
 
@@ -300,22 +300,26 @@
       flux_direction.eq.1) then ! HACK: x direction is last
     ! FIXME: I think one could wrap all of this into a single do loop and remove the
     !        Evec storage
+    ! idx differs from idx which was 1d0/CCTK_DELTA_SPACE(flux_direction)
+    idx = 1d0 / CCTK_DELTA_SPACE(1)
+    idy = 1d0 / CCTK_DELTA_SPACE(2)
+    idz = 1d0 / CCTK_DELTA_SPACE(3)
     !$OMP PARALLEL DO PRIVATE(i,j,k)
     do k = GRHydro_stencil + 1, cctk_lsh(3) - GRHydro_stencil
       do j = GRHydro_stencil + 1, cctk_lsh(2) - GRHydro_stencil
         do i = GRHydro_stencil + 1, cctk_lsh(1) - GRHydro_stencil
           Bconsrhs(i,j,k,1) = - 0.5d0 * ((Evec(i-1,j  ,k-1,2)-Evec(i-1,j  ,k  ,2)) &
-                                       + (Evec(i  ,j  ,k-1,2)-Evec(i  ,j  ,k  ,2))) / CCTK_DELTA_SPACE(3) &
+                                       + (Evec(i  ,j  ,k-1,2)-Evec(i  ,j  ,k  ,2))) * idz &
                               - 0.5d0 * ((Evec(i-1,j  ,k  ,3)-Evec(i-1,j-1,k  ,3)) &
-                                       + (Evec(i  ,j  ,k  ,3)-Evec(i  ,j-1,k  ,3))) / CCTK_DELTA_SPACE(2)
+                                       + (Evec(i  ,j  ,k  ,3)-Evec(i  ,j-1,k  ,3))) * idy
           Bconsrhs(i,j,k,2) = - 0.5d0 * ((Evec(i-1,j-1,k  ,3)-Evec(i  ,j-1,k  ,3)) &
-                                       + (Evec(i-1,j  ,k  ,3)-Evec(i  ,j  ,k  ,3))) / CCTK_DELTA_SPACE(1) &
+                                       + (Evec(i-1,j  ,k  ,3)-Evec(i  ,j  ,k  ,3))) * idx &
                               - 0.5d0 * ((Evec(i  ,j-1,k  ,1)-Evec(i  ,j-1,k-1,1)) &
-                                       + (Evec(i  ,j  ,k  ,1)-Evec(i  ,j  ,k-1,1))) / CCTK_DELTA_SPACE(3)
+                                       + (Evec(i  ,j  ,k  ,1)-Evec(i  ,j  ,k-1,1))) * idz
           Bconsrhs(i,j,k,3) = - 0.5d0 * ((Evec(i  ,j-1,k-1,1)-Evec(i  ,j  ,k-1,1)) &
-                                       + (Evec(i  ,j-1,k  ,1)-Evec(i  ,j  ,k  ,1))) / CCTK_DELTA_SPACE(2) &
+                                       + (Evec(i  ,j-1,k  ,1)-Evec(i  ,j  ,k  ,1))) * idy &
                               - 0.5d0 * ((Evec(i  ,j  ,k-1,2)-Evec(i-1,j  ,k-1,2)) &
-                                       + (Evec(i  ,j  ,k  ,2)-Evec(i-1,j  ,k  ,2))) / CCTK_DELTA_SPACE(1)
+                                       + (Evec(i  ,j  ,k  ,2)-Evec(i-1,j  ,k  ,2))) * idx
         enddo
       enddo
     enddo



More information about the Commits mailing list