diff options
author | rhaas <rhaas@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45> | 2014-04-15 19:49:45 +0000 |
---|---|---|
committer | rhaas <rhaas@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45> | 2014-04-15 19:49:45 +0000 |
commit | e752d42cd91662625fe26341f0e0ec5eab935b32 (patch) | |
tree | e029ed7c0be2177dfaa005aa94210485f44c128d | |
parent | fc460e7b5a6ae0a3040dc8f16aba4a843b82b822 (diff) |
GRHydro: low level optimizations
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinEvolve/GRHydro/trunk@631 c83d129a-5a75-4d5a-9c4d-ed3a5855bf45
-rw-r--r-- | src/GRHydro_CalcUpdate.F90 | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/GRHydro_CalcUpdate.F90 b/src/GRHydro_CalcUpdate.F90 index dc59641..80ef6fa 100644 --- a/src/GRHydro_CalcUpdate.F90 +++ b/src/GRHydro_CalcUpdate.F90 @@ -39,7 +39,7 @@ subroutine UpdateCalculation(CCTK_ARGUMENTS) 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 @@ subroutine UpdateCalculation(CCTK_ARGUMENTS) 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 |