diff options
author | diener <diener@2a26948c-0e4f-0410-aee8-f1d3e353619c> | 2002-09-18 13:57:26 +0000 |
---|---|---|
committer | diener <diener@2a26948c-0e4f-0410-aee8-f1d3e353619c> | 2002-09-18 13:57:26 +0000 |
commit | 8d7e479e5c3d66e4d0ce9e05153d26eaf6447bf6 (patch) | |
tree | b0879214f66ae2dc053b8f7e874aa16e6accbe86 /src/include | |
parent | cddda5856cd62c71d47ea596e776b1a4f1819b45 (diff) |
Include for second order centered derivatives. The only difference
from centered_second.h is that centered_second2.h should be placed
within the do loops while centered_second.h contains the do loops.
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/EHFinder/trunk@46 2a26948c-0e4f-0410-aee8-f1d3e353619c
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/centered_second2.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/include/centered_second2.h b/src/include/centered_second2.h new file mode 100644 index 0000000..c29fd41 --- /dev/null +++ b/src/include/centered_second2.h @@ -0,0 +1,39 @@ +! Calculation of centered differences. +! $Header$ + +if ( eh_mask(i,j,k) .ge. 0 ) then + if ( ( .not. btest(eh_mask(i,j,k),0) ) .and. & + ( .not. btest(eh_mask(i,j,k),1) ) ) then + dfx(i,j,k) = idx * ( f(i+1,j,k) - f(i-1,j,k) ) + else if ( btest(eh_mask(i,j,k),0) ) then + dfx(i,j,k) = idx * ( -three * f(i,j,k) + & + four * f(i+1,j,k) - f(i+2,j,k) ) + else + dfx(i,j,k) = idx * ( three * f(i,j,k) - & + four * f(i-1,j,k) + f(i-2,j,k) ) + end if + if ( ( .not. btest(eh_mask(i,j,k),2) ) .and. & + ( .not. btest(eh_mask(i,j,k),3) ) ) then + dfy(i,j,k) = idy * ( f(i,j+1,k) - f(i,j-1,k) ) + else if ( btest(eh_mask(i,j,k),2) ) then + dfy(i,j,k) = idy * ( -three * f(i,j,k) + & + four * f(i,j+1,k) - f(i,j+2,k) ) + else + dfy(i,j,k) = idy * ( three * f(i,j,k) - & + four * f(i,j-1,k) + f(i,j-2,k) ) + end if + if ( ( .not. btest(eh_mask(i,j,k),4) ) .and. & + ( .not. btest(eh_mask(i,j,k),5) ) ) then + dfz(i,j,k) = idz * ( f(i,j,k+1) - f(i,j,k-1) ) + else if ( btest(eh_mask(i,j,k),4) ) then + dfz(i,j,k) = idz * ( -three * f(i,j,k) + & + four * f(i,j,k+1) - f(i,j,k+2) ) + else + dfz(i,j,k) = idz * ( three * f(i,j,k) - & + four * f(i,j,k-1) + f(i,j,k-2) ) + end if +else + dfx(i,j,k) = zero + dfy(i,j,k) = zero + dfz(i,j,k) = zero +end if |