aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgoodale <goodale@90eea020-d82d-4da5-bf6e-4ee79ff7632f>2000-03-28 07:04:05 +0000
committergoodale <goodale@90eea020-d82d-4da5-bf6e-4ee79ff7632f>2000-03-28 07:04:05 +0000
commitaa70aa70e686f8b6e048e56f8bedc0538730fd3d (patch)
tree4c184dbb5501b687fde10ed9aba2ee751330a699 /src
parent527719da65c2c9cbe69e42ee8f08012ad7de2399 (diff)
60% more MFlop/s
Tom git-svn-id: http://svn.cactuscode.org/arrangements/CactusWave/WaveToyC/trunk@39 90eea020-d82d-4da5-bf6e-4ee79ff7632f
Diffstat (limited to 'src')
-rw-r--r--src/WaveToy.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/WaveToy.c b/src/WaveToy.c
index d33db39..8a1c6d3 100644
--- a/src/WaveToy.c
+++ b/src/WaveToy.c
@@ -41,6 +41,7 @@ void WaveToyC_Evolution(CCTK_ARGUMENTS)
int index;
int istart, jstart, kstart, iend, jend, kend;
CCTK_REAL dx,dy,dz,dt,dx2,dy2,dz2,dt2;
+ CCTK_REAL dx2i,dy2i,dz2i;
/* Set up shorthands */
dx = CCTK_DELTA_SPACE(0);
@@ -53,6 +54,10 @@ void WaveToyC_Evolution(CCTK_ARGUMENTS)
dz2=dz*dz;
dt2=dt*dt;
+ dx2i = 1.0/dx2;
+ dy2i = 1.0/dy2;
+ dz2i = 1.0/dz2;
+
istart = 1;
jstart = 1;
kstart = 1;
@@ -69,18 +74,19 @@ void WaveToyC_Evolution(CCTK_ARGUMENTS)
{
for (i=istart; i<iend; i++)
{
+ index = CCTK_GFINDEX3D(cctkGH,i,j,k);
- phi_new[CCTK_GFINDEX3D(cctkGH,i,j,k)] =
- 2*(1 - (dt2)*(1/dx2 + 1/dy2 + 1/dz2))*
- phi[CCTK_GFINDEX3D(cctkGH,i,j,k)] -
- phi_old[CCTK_GFINDEX3D(cctkGH,i,j,k)]
+ phi_new[index] =
+ 2*(1 - (dt2)*(dx2i + dy2i + dz2i))*
+ phi[index] -
+ phi_old[index]
+ (dt2) *
- ( ( phi[CCTK_GFINDEX3D(cctkGH,i+1,j,k)]
- +phi[CCTK_GFINDEX3D(cctkGH,i-1,j,k)] )/dx2
- +( phi[CCTK_GFINDEX3D(cctkGH,i,j+1,k)]
- +phi[CCTK_GFINDEX3D(cctkGH,i,j-1,k)] )/dy2
- +( phi[CCTK_GFINDEX3D(cctkGH,i,j,k+1)]
- +phi[CCTK_GFINDEX3D(cctkGH,i,j,k-1)] )/dz2);
+ ( ( phi[CCTK_GFINDEX3D(cctkGH,i+1,j ,k )]
+ +phi[CCTK_GFINDEX3D(cctkGH,i-1,j ,k )] )*dx2i
+ +( phi[CCTK_GFINDEX3D(cctkGH,i ,j+1,k )]
+ +phi[CCTK_GFINDEX3D(cctkGH,i ,j-1,k )] )*dy2i
+ +( phi[CCTK_GFINDEX3D(cctkGH,i ,j ,k+1)]
+ +phi[CCTK_GFINDEX3D(cctkGH,i ,j, k-1)] )*dz2i);
}
}
}