diff options
author | goodale <goodale@90eea020-d82d-4da5-bf6e-4ee79ff7632f> | 2000-03-28 07:04:05 +0000 |
---|---|---|
committer | goodale <goodale@90eea020-d82d-4da5-bf6e-4ee79ff7632f> | 2000-03-28 07:04:05 +0000 |
commit | aa70aa70e686f8b6e048e56f8bedc0538730fd3d (patch) | |
tree | 4c184dbb5501b687fde10ed9aba2ee751330a699 /src | |
parent | 527719da65c2c9cbe69e42ee8f08012ad7de2399 (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.c | 26 |
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); } } } |