aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschnetter <schnetter@b716e942-a2de-43ad-8f52-f3dfe468e4e7>2005-10-19 14:45:53 +0000
committerschnetter <schnetter@b716e942-a2de-43ad-8f52-f3dfe468e4e7>2005-10-19 14:45:53 +0000
commit90cc3406685472af510d6d810f154ccc6f8220fe (patch)
tree0629080fddfc85a5a05874d3115e825d1160062e
parent38371668ea7b982b127c9b6746af1ebf7c97b467 (diff)
Correct third derivative operators
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinUtils/TGRtensor/trunk@32 b716e942-a2de-43ad-8f52-f3dfe468e4e7
-rw-r--r--src/derivs.F907
1 files changed, 3 insertions, 4 deletions
diff --git a/src/derivs.F90 b/src/derivs.F90
index 1413f7d..22351a8 100644
--- a/src/derivs.F90
+++ b/src/derivs.F90
@@ -47,23 +47,22 @@ contains
CCTK_REAL, intent(out) :: f(3,3,3)
integer, intent(in) :: pos, off(3)
CCTK_REAL, intent(in) :: dx(3)
- integer :: i
f(1,1,1) = (- a(pos+2*off(1)) + 2*a(pos+off(1)) - 2*a(pos-off(1)) + a(pos-2*off(1))) / (2*dx(1)**3)
f(2,1,1) = (a(pos+off(1)+off(2)) - 2*a(pos+off(2)) + a(pos-off(1)+off(2)) - a(pos+off(1)-off(2)) + 2*a(pos-off(2)) - a(pos-off(1)-off(2))) / (2*dx(1)*dx(1)*dx(2))
f(3,1,1) = (a(pos+off(1)+off(3)) - 2*a(pos+off(3)) + a(pos-off(1)+off(3)) - a(pos+off(1)-off(3)) + 2*a(pos-off(3)) - a(pos-off(1)-off(3))) / (2*dx(1)*dx(1)*dx(3))
f(1,2,1) = f(2,1,1)
f(2,2,1) = (a(pos+off(1)+off(2)) - 2*a(pos+off(1)) + a(pos+off(1)-off(2)) - a(pos-off(1)+off(2)) + 2*a(pos-off(1)) - a(pos-off(1)-off(2))) / (2*dx(1)*dx(2)*dx(2))
- f(3,2,1) = (a(pos+off(1)+off(2)+1) - a(pos-off(1)+off(2)+1) - a(pos+off(1)-off(2)+1) + a(pos-off(1)-off(2)+1) - a(pos+off(1)+off(2)-1) + a(pos-off(1)+off(2)-1) + a(pos+off(1)-off(2)-1) - a(pos-off(1)-off(2)-1)) * (8*dx(1)*dx(2)*dx(3))
+ f(3,2,1) = (a(pos+off(1)+off(2)+off(3)) - a(pos-off(1)+off(2)+off(3)) - a(pos+off(1)-off(2)+off(3)) + a(pos-off(1)-off(2)+off(3)) - a(pos+off(1)+off(2)-off(3)) + a(pos-off(1)+off(2)-off(3)) + a(pos+off(1)-off(2)-off(3)) - a(pos-off(1)-off(2)-off(3))) * (8*dx(1)*dx(2)*dx(3))
f(1,3,1) = f(3,3,1)
f(2,3,1) = f(3,2,1)
f(3,3,1) = (a(pos+off(1)+off(3)) - 2*a(pos+off(1)) + a(pos+off(1)-off(3)) - a(pos-off(1)+off(3)) + 2*a(pos-off(1)) - a(pos-off(1)-off(3))) / (2*dx(1)*dx(3)*dx(3))
f(:,1,2) = f(:,2,1)
f(1,2,2) = f(2,2,1)
f(2,2,2) = (- a(pos+2*off(2)) + 2*a(pos+off(2)) - 2*a(pos-off(2)) + a(pos-2*off(2))) / (2*dx(2)**3)
- f(3,2,2) = (a(pos+off(2)+1) - 2*a(pos+off(3)) + a(pos-off(2)+1) - a(pos+off(2)-1) + 2*a(pos-off(3)) - a(pos-off(2)-1)) / (2*dx(2)*dx(2)*dx(3))
+ f(3,2,2) = (a(pos+off(2)+off(3)) - 2*a(pos+off(3)) + a(pos-off(2)+off(3)) - a(pos+off(2)-off(3)) + 2*a(pos-off(3)) - a(pos-off(2)-off(3))) / (2*dx(2)*dx(2)*dx(3))
f(1,3,2) = f(3,2,1)
f(2,3,2) = f(3,2,2)
- f(3,3,2) = (a(pos+off(2)+1) - 2*a(pos+off(2)) + a(pos+off(2)-1) - a(pos-off(2)+1) + 2*a(pos-off(2)) - a(pos-off(2)-1)) / (2*dx(2)*dx(3)*dx(3))
+ f(3,3,2) = (a(pos+off(2)+off(3)) - 2*a(pos+off(2)) + a(pos+off(2)-off(3)) - a(pos-off(2)+off(3)) + 2*a(pos-off(2)) - a(pos-off(2)-off(3))) / (2*dx(2)*dx(3)*dx(3))
f(:,1,3) = f(:,3,1)
f(:,2,3) = f(:,3,2)
f(1,3,3) = f(3,3,1)