aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrhaas <rhaas@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45>2014-04-15 19:49:45 +0000
committerrhaas <rhaas@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45>2014-04-15 19:49:45 +0000
commite752d42cd91662625fe26341f0e0ec5eab935b32 (patch)
treee029ed7c0be2177dfaa005aa94210485f44c128d
parentfc460e7b5a6ae0a3040dc8f16aba4a843b82b822 (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.F9018
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