[Commits] [svn:einsteintoolkit] GRHydro/trunk/src/ (Rev. 313)

cott at tapir.caltech.edu cott at tapir.caltech.edu
Wed Feb 8 19:03:16 CST 2012


User: cott
Date: 2012/02/08 07:03 PM

Modified:
 /trunk/src/
  GRHydro_EoSChangeGamma.F90

Log:
 make EOS change work with MP

File Changes:

Directory: /trunk/src/
======================

File [modified]: GRHydro_EoSChangeGamma.F90
Delta lines: +53 -3
===================================================================
--- trunk/src/GRHydro_EoSChangeGamma.F90	2012-02-03 23:09:46 UTC (rev 312)
+++ trunk/src/GRHydro_EoSChangeGamma.F90	2012-02-09 01:03:16 UTC (rev 313)
@@ -148,6 +148,12 @@
 
   implicit none
 
+  ! save memory when MP is not used
+  ! TARGET has to be before DECLARE_CCTK_ARGUMENTS for gcc 4.1
+  TARGET gaa, gab, gac, gbb, gbc, gcc
+  TARGET gxx, gxy, gxz, gyy, gyz, gzz
+  TARGET lvel, vel
+
   DECLARE_CCTK_ARGUMENTS
   DECLARE_CCTK_PARAMETERS
 
@@ -158,6 +164,11 @@
   
   CCTK_REAL, dimension(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3)) :: Q
 
+  ! save memory when MP is not used
+  CCTK_INT :: GRHydro_UseGeneralCoordinates
+  CCTK_REAL, DIMENSION(:,:,:), POINTER :: g11, g12, g13, g22, g23, g33
+  CCTK_REAL, DIMENSION(:,:,:,:), POINTER :: vup
+
 !!$  Set up the fluid constants
 ! begin EOS Omni vars
   integer :: n,keytemp,anyerr,keyerr(1)
@@ -174,12 +185,16 @@
   local_Gamma = 1.0d0 + xpress/xeps
   local_K = xpress
 
+  call CCTK_INFO("Adjusting EOS via K change!")
+
   if (abs(local_Gamma - 2.d0) < 1.d-10) then
 
     rho = -0.5d0/local_k+sqrt(0.25d0/local_k**2+(rho+initial_k*rho**2)/local_k)
 
   else if (abs(local_Gamma - 3.d0) < 1.d-10) then
 
+     call CCTK_WARN(0, "This part of the code is not tested!")
+
 !!$ This code is probably just wrong. We have never used it anyway.
     Q = -9.d0 * local_k**2 * rho * (2.d0 + 3.d0 * initial_k * rho**2) + &
          sqrt(local_k**3 * (32.d0 + 81.d0 * local_k * rho**2 * &
@@ -193,12 +208,47 @@
   else
     call CCTK_WARN(0, "EoSChangeK only knows how to do Gamma=2 or 3!")
   end if
-  
+ 
   press = local_k * rho**local_gamma
-  eps = local_k / (local_gamma - 1.d0) * rho**(local_gamma-1)
+  eps = local_k / (local_gamma - 1.d0) * rho**(local_gamma-1.0d0)
 
-  call Primitive2ConservativePolyCells(CCTK_ARGUMENTS)
+  ! save memory when MP is not used
+  if (GRHydro_UseGeneralCoordinates(cctkGH).ne.0) then
+    g11 => gaa
+    g12 => gab
+    g13 => gac
+    g22 => gbb
+    g23 => gbc
+    g33 => gcc
+    vup => lvel
+  else
+    g11 => gxx
+    g12 => gxy
+    g13 => gxz
+    g22 => gyy
+    g23 => gyz
+    g33 => gzz
+    vup => vel
+  end if
 
+  do k = 1, cctk_lsh(3)
+    do j = 1, cctk_lsh(2)
+      do i = 1, cctk_lsh(1)
+        
+        det = SPATIAL_DETERMINANT(g11(i,j,k),g12(i,j,k),g13(i,j,k),\
+             g22(i,j,k),g23(i,j,k),g33(i,j,k))
+        call prim2conpolytype(GRHydro_polytrope_handle,g11(i,j,k),g12(i,j,k),&
+             g13(i,j,k),g22(i,j,k),g23(i,j,k),g33(i,j,k),&
+             det, dens(i,j,k),sx(i,j,k),sy(i,j,k),sz(i,j,k),&
+             tau(i,j,k),rho(i,j,k),velx(i,j,k),vely(i,j,k),velz(i,j,k),&
+             eps(i,j,k),press(i,j,k),w_lorentz(i,j,k))
+
+      end do
+    end do
+  end do
+
+
+
 end subroutine GRHydro_EoSChangeK
 
 



More information about the Commits mailing list