aboutsummaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authordiener <diener@2a26948c-0e4f-0410-aee8-f1d3e353619c>2002-09-18 13:57:26 +0000
committerdiener <diener@2a26948c-0e4f-0410-aee8-f1d3e353619c>2002-09-18 13:57:26 +0000
commit8d7e479e5c3d66e4d0ce9e05153d26eaf6447bf6 (patch)
treeb0879214f66ae2dc053b8f7e874aa16e6accbe86 /src/include
parentcddda5856cd62c71d47ea596e776b1a4f1819b45 (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.h39
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