[Commits] [svn:einsteintoolkit] NullSHRExtract/branches/tapir/src/ (Rev. 23)

bela at caltech.edu bela at caltech.edu
Fri Nov 8 15:00:32 CST 2013


User: szilagyi
Date: 2013/11/08 03:00 PM

Modified:
 /branches/tapir/src/
  NullSHRE_modRadius.F90

Log:
 work on d(rBondi)/d(rCartesian)

File Changes:

Directory: /branches/tapir/src/
===============================

File [modified]: NullSHRE_modRadius.F90
Delta lines: +35 -11
===================================================================
--- branches/tapir/src/NullSHRE_modRadius.F90	2013-11-08 19:42:15 UTC (rev 22)
+++ branches/tapir/src/NullSHRE_modRadius.F90	2013-11-08 21:00:31 UTC (rev 23)
@@ -5,13 +5,13 @@
 
 contains
 
-  subroutine wt_r_long(cr, temp, detg, g3up, j0inv, r0)
+  subroutine wt_r_long(cr, temp, detg, g3inv, j0inv, r0)
     use NullSHRE_modGFdef
     implicit none
     CCTK_REAL,                     intent (in)    :: cr
     type (gf2d),                   intent (in)    :: detg
     type (gf2d),                   intent (inout) :: temp
-    type (gf2d), dimension (3,3),  intent (in)    :: g3up
+    type (gf2d), dimension (3,3),  intent (in)    :: g3inv
     type (gf2d), dimension (4,4),  intent (in)    :: j0inv
     type (gf2d),                   intent (inout) :: r0
 
@@ -21,7 +21,7 @@
     temp%d = 0
     do i = 1, 3
        do j = 1, 3
-       temp%d = temp%d + j0inv(1,i)%d * j0inv(1,j)%d * g3up(i,j)%d
+       temp%d = temp%d + j0inv(1,i)%d * j0inv(1,j)%d * g3inv(i,j)%d
        end do
     end do
 
@@ -31,28 +31,52 @@
 
   ! This is debugging code.  given the metric and derivatives,
   ! will compute drBondi/d(cartesian R)
-  subroutine wt_dr(g3, detg3, g3inv, dg3_dR, j0inv, r0, dr_dR)
+  subroutine wt_dr_dR(cr, detg3, g3inv, dg3_dR, j0inv, r0, dr_dR)
     use NullSHRE_modGFdef
+    use NullGrid_Vars, only: lsh
     implicit none
 
-    type (gf2d), dimension (3,3),intent (in)    :: g3, g3inv ! g_ij, g^ij
+    CCTK_REAL,                   intent (in)    :: cr
+    type (gf2d), dimension (3,3),intent (in)    :: g3inv ! g_ij, g^ij
     type (gf2d),                 intent (in)    :: detg3     ! det(g_ij)
     type (gf2d), dimension (3,3),intent (in)    :: dg3_dR    ! g_ij{,r}(cart)
+    type (gf2d),                 intent (in)    :: r0        ! Bondi r
     ! x,y,z derivatives of (r, q, p) coordinates :
     type (gf2d), dimension (3,3),intent (in)    :: j0inv
-    type (gf2d),                 intent (in)    :: r0
+    ! this will hold the result
     type (gf2d),                 intent (inout) :: dr_dR
 
+    CCTK_REAL, dimension(lsh(1),lsh(2)) :: detg_R, grr, grr_R, g3invij_R
+    integer :: i, j, k, l
+!   ! radial deriv of j0inv:
+!   !   dj0inv(a,:)/dr = 0 for a=1
+!   !   dj0inv(a,:)/dr = -j0inv(a,:)/cr for a=2,3
 
-    ! radial deriv of j0inv:
-    !   dj0inv(a,:)/dr = 0 for a=1
-    !   dj0inv(a,:)/dr = -j0inv(a,:)/cr for a=2,3
+!   ! rB = R ( detg g^rr)^(1/4)
 
-    ! rB = R ( detg g^rr)^(1/4)
+    detg_R = 0
+    grr    = 0
+    grr_R  = 0
+    g3invij_R = 0
 
+    do i = 1, 3
+       do j = 1, 3
+          detg_R = detg_R + g3inv(i,j)%d * dg3_dR(i,j)%d
+          grr = grr + j0inv(1,i)%d * j0inv(1,j)%d * g3inv(i,j)%d
+          do k = 1, 3
+             do l = 1, 3
+                g3invij_R = g3invij_R-g3inv(i,k)%d*g3inv(j,l)%d*dg3_dR(k,l)%d
+             end do
+          end do
+          ! note that partial_R j0inv(1,:) is zero
+          grr_R = grr_R + j0inv(1,i)%d * j0inv(1,j)%d * g3invij_R
+       end do
+    end do
 
+!   dr_dR%d = r0%d / R + 0.25 * R^4 * ( detg g^rr )^(-3/4) / R^3 * ()_,r
+    dr_dR%d = r0%d/cr + 0.25*cr * (cr/r0%d)**3 * ( detg_R*grr + detg3%d*grr_R )
 
-  end subroutine wt_dr
+  end subroutine wt_dr_dR
 
   subroutine wt_r(nn1, nn2, pp, eta0, r0)
 ! the bondi radius eq. (53) 



More information about the Commits mailing list