From 9bdcde4bcdd4e2b40603cb0fef4885bc115ce0e6 Mon Sep 17 00:00:00 2001 From: miguel Date: Mon, 23 Apr 2001 10:28:12 +0000 Subject: Changing the finite differencing interval for the derivatives of q. git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/IDBrillData/trunk@49 a678b1cf-93e1-4b43-a69d-d43939e66649 --- src/setupbrilldata2D.F | 23 +++++++++++++++-------- src/setupbrilldata3D.F | 9 ++++++++- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/setupbrilldata2D.F b/src/setupbrilldata2D.F index e598612..e81d468 100644 --- a/src/setupbrilldata2D.F +++ b/src/setupbrilldata2D.F @@ -42,6 +42,7 @@ c f CCTK_REAL x1,y1,z1,rho1 CCTK_REAL brillq,eps + CCTK_REAL zp,zm,rhop,rhom CCTK_REAL zero,one external brillq @@ -57,9 +58,9 @@ c Set up grid size. ny = cctk_lsh(2) nz = cctk_lsh(3) -c Parameters. +c Epsilon for finite differencing. - eps = brill_eps + eps = cctk_delta_space(1) c Initialize psi. @@ -106,12 +107,18 @@ c with a small negative rho, but that should be ok as long as c brillq is even in rho - physically it must be, or the data c will not be regular on the axis. - brillMlinear(i,j,k) = 0.25d0 - . *(brillq(rho1,z1+eps,zero) - . + brillq(rho1,z1-eps,zero) - . + brillq(rho1+eps,z1,zero) - . + brillq(rho1-eps,z1,zero) - . - 4.d0*brillq(rho1,z1,zero))/eps**2 + zp = z1 + eps + zm = z1 - eps + + rhop = rho1 + eps + rhom = rho1 - eps + + brillMlinear(i,j,k) = 0.25D0 + . *(brillq(rho1,zp,zero) + . + brillq(rho1,zm,zero) + . + brillq(rhop,z1,zero) + . + brillq(rhom,z1,zero) + . - 4.0D0*brillq(rho1,z1,zero))/eps**2 end do end do diff --git a/src/setupbrilldata3D.F b/src/setupbrilldata3D.F index d0f349d..8a530ce 100644 --- a/src/setupbrilldata3D.F +++ b/src/setupbrilldata3D.F @@ -71,7 +71,10 @@ c Define numbers c Parameters. rhofudge = brill_rhofudge - eps = brill_eps + +c Epsilon for finite differencing. + + eps = cctk_delta_space(1) c Initialize psi. @@ -148,6 +151,7 @@ c Find M using centered differences over a small c interval. if (rho1.gt.rhofudge) then + brillMlinear(i,j,k) = 0.25D0/e2q . *(brillq(rho1,z1+eps,phi) . + brillq(rho1,z1-eps,phi) @@ -155,13 +159,16 @@ c interval. . + brillq(rho1-eps,z1,phi) . - 4.0D0*brillq(rho1,z1,phi)) . / eps**2 + else + brillMlinear(i,j,k) = 0.25D0/e2q . *(brillq(rho1,z1+eps,phi) . + brillq(rho1,z1-eps,phi) . + two*brillq(eps,z1,phi) . - two*brillq(rho1,z1,phi)) . / eps**2 + end if c Here I assume that for very small rho, the -- cgit v1.2.3