aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/GRHydro_Boundaries.F9027
-rw-r--r--src/GRHydro_Con2Prim.F90125
-rw-r--r--src/GRHydro_EoSChangeGamma.F909
-rw-r--r--src/GRHydro_FluxSplit.F90154
-rw-r--r--src/GRHydro_HLLE.F9080
-rw-r--r--src/GRHydro_HLLEPoly.F9083
-rw-r--r--src/GRHydro_Marquina.F9031
-rw-r--r--src/GRHydro_PPM.F905
-rw-r--r--src/GRHydro_ParamCheck.F907
-rw-r--r--src/GRHydro_Prim2Con.F90131
-rw-r--r--src/GRHydro_Reconstruct.F906
-rw-r--r--src/GRHydro_ReconstructPoly.F906
-rw-r--r--src/GRHydro_RiemannSolve.F9015
-rw-r--r--src/GRHydro_RoeSolver.F9029
-rw-r--r--src/GRHydro_Source.F90174
-rw-r--r--src/GRHydro_Tmunu.F9056
-rw-r--r--src/GRHydro_UpdateMask.F9030
-rw-r--r--src/Utils.F9036
18 files changed, 273 insertions, 731 deletions
diff --git a/src/GRHydro_Boundaries.F90 b/src/GRHydro_Boundaries.F90
index 5e8c093..b4dcafb 100644
--- a/src/GRHydro_Boundaries.F90
+++ b/src/GRHydro_Boundaries.F90
@@ -11,6 +11,7 @@
#include "cctk_Parameters.h"
#include "cctk_Arguments.h"
#include "cctk_Functions.h"
+#include "GRHydro_Macros.h"
#include "util_Table.h"
@@ -246,16 +247,9 @@ subroutine GRHydro_OutflowBoundaries(CCTK_ARGUMENTS)
press(i,j,k) = press(i,j,k-1)
w_lorentz(i,j,k) = w_lorentz(i,j,k-1)
- if (conformal_state .eq. 0) then
- psi4pt = 1d0
- call SpatialDeterminant(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
- gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),det)
- else
- psi4pt = psi(i,j,k)**4
- call SpatialDeterminant(psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),psi4pt*gyz(i,j,k),&
- psi4pt*gzz(i,j,k),det)
- end if
+ psi4pt = 1.0d0
+ det = SPATIAL_DETERMINANT(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),\
+ gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
call prim2con(GRHydro_eos_handle,psi4pt*gxx(i,j,k),&
psi4pt*gxy(i,j,k),psi4pt*gxz(i,j,k),&
psi4pt*gyy(i,j,k),psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k),&
@@ -293,16 +287,9 @@ subroutine GRHydro_OutflowBoundaries(CCTK_ARGUMENTS)
press(i,j,k) = press(i,j,k+1)
w_lorentz(i,j,k) = w_lorentz(i,j,k+1)
- if (conformal_state .eq. 0) then
- psi4pt = 1d0
- call SpatialDeterminant(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
- gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),det)
- else
- psi4pt = psi(i,j,k)**4
- call SpatialDeterminant(psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),psi4pt*gyz(i,j,k),&
- psi4pt*gzz(i,j,k),det)
- end if
+ psi4pt = 1.0d0
+ det = SPATIAL_DETERMINANT(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),\
+ gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
call prim2con(GRHydro_eos_handle,psi4pt*gxx(i,j,k),&
psi4pt*gxy(i,j,k),psi4pt*gxz(i,j,k),&
psi4pt*gyy(i,j,k),psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k),&
diff --git a/src/GRHydro_Con2Prim.F90 b/src/GRHydro_Con2Prim.F90
index 160493c..24811c5 100644
--- a/src/GRHydro_Con2Prim.F90
+++ b/src/GRHydro_Con2Prim.F90
@@ -13,6 +13,7 @@
#include "cctk_Functions.h"
#include "SpaceMask.h"
#include "GRHydro_Interfaces.h"
+#include "GRHydro_Macros.h"
/*@@
@routine Conservative2Primitive
@@ -26,7 +27,7 @@
@calledby
@history
Trimmed and altered from the GR3D routines, original author Mark Miller.
- 2007?: Bruno escluded the points in the atmosphere and excision region from the computation.
+ 2007?: Bruno excluded the points in the atmosphere and excision region from the computation.
Aug. 2008: Luca added a check on whether a failure at a given point may be disregarded,
because that point will then be restricted from a finer level. This should be completely
safe only if *regridding happens at times when all levels are evolved.*
@@ -115,21 +116,11 @@ subroutine Conservative2Primitive(CCTK_ARGUMENTS)
epsnegative = .false.
- if (conformal_state .eq. 0) then
- call SpatialDeterminant(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
- gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),det)
- call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det,&
- gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),gyy(i,j,k),&
- gyz(i,j,k),gzz(i,j,k))
- else
- psi4pt = psi(i,j,k)**4
- call SpatialDeterminant(psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),&
- psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k),det)
- call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det,&
- psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),psi4pt*gxz(i,j,k),&
- psi4pt*gyy(i,j,k),psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k))
- end if
+ det = SPATIAL_DETERMINANT(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k), \
+ gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
+ call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det,&
+ gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),gyy(i,j,k),&
+ gyz(i,j,k),gzz(i,j,k))
!!$ if (det < 0.e0) then
!!$ call CCTK_WARN(0, "nan produced (det negative)")
@@ -637,28 +628,12 @@ subroutine Conservative2PrimitiveBounds(CCTK_ARGUMENTS)
epsnegative = .false.
- if (conformal_state .eq. 0) then
- call SpatialDeterminant(gxxl,gxyl,gxzl,gyyl, gyzl,gzzl,avg_detl)
- call SpatialDeterminant(gxxr,gxyr,gxzr,gyyr, gyzr,gzzr,avg_detr)
- call UpperMetric(uxxl,uxyl,uxzl,uyyl,uyzl,uzzl,avg_detl,&
- gxxl,gxyl,gxzl,gyyl,gyzl,gzzl)
- call UpperMetric(uxxr,uxyr,uxzr,uyyr,uyzr,uzzr,avg_detr,&
- gxxr,gxyr,gxzr,gyyr,gyzr,gzzr)
- else
- psi4r = (0.5d0*(psi(i,j,k)+psi(i+xoffset,j+yoffset,k+zoffset)))**4
- psi4l = (0.5d0*(psi(i,j,k)+psi(i-xoffset,j-yoffset,k-zoffset)))**4
-
- call SpatialDeterminant(psi4l*gxxl,psi4l*gxyl,psi4l*gxzl,&
- psi4l*gyyl,psi4l*gyzl,psi4l*gzzl,avg_detl)
- call SpatialDeterminant(psi4r*gxxr,psi4r*gxyr,psi4r*gxzr,&
- psi4r*gyyr,psi4r*gyzr,psi4r*gzzr,avg_detr)
- call UpperMetric(uxxl,uxyl,uxzl,uyyl,uyzl,uzzl,avg_detl,&
- psi4l*gxxl,psi4l*gxyl,psi4l*gxzl,psi4l*gyyl,psi4l*gyzl,&
- psi4l*gzzl)
- call UpperMetric(uxxr,uxyr,uxzr,uyyr,uyzr,uzzr,avg_detr,&
- psi4r*gxxr,psi4r*gxyr,psi4r*gxzr,psi4r*gyyr,psi4r*gyzr,&
- psi4r*gzzr)
- end if
+ avg_detl = SPATIAL_DETERMINANT(gxxl,gxyl,gxzl,gyyl, gyzl,gzzl)
+ avg_detr = SPATIAL_DETERMINANT(gxxr,gxyr,gxzr,gyyr, gyzr,gzzr)
+ call UpperMetric(uxxl,uxyl,uxzl,uyyl,uyzl,uzzl,avg_detl,&
+ gxxl,gxyl,gxzl,gyyl,gyzl,gzzl)
+ call UpperMetric(uxxr,uxyr,uxzr,uyyr,uyzr,uzzr,avg_detr,&
+ gxxr,gxyr,gxzr,gyyr,gyzr,gzzr)
if (evolve_tracer .ne. 0) then
do itracer=1,number_of_tracers
@@ -837,21 +812,11 @@ subroutine Conservative2PrimitivePolytype(CCTK_ARGUMENTS)
if (SpaceMask_CheckStateBitsF90(space_mask, i, j, k, type_bits, atmosphere) .or. &
GRHydro_enable_internal_excision /= 0 .and. (hydro_excision_mask(i,j,k) .ne. 0)) cycle
- if (conformal_state .eq. 0) then
- call SpatialDeterminant(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
- gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),det)
- call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det,&
- gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),gyy(i,j,k),&
- gyz(i,j,k),gzz(i,j,k))
- else
- psi4pt = psi(i,j,k)**4
- call SpatialDeterminant(psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),&
- psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k),det)
- call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det,&
- psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),psi4pt*gxz(i,j,k),&
- psi4pt*gyy(i,j,k),psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k))
- end if
+ det = SPATIAL_DETERMINANT(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),\
+ gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
+ call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det,&
+ gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),gyy(i,j,k),&
+ gyz(i,j,k),gzz(i,j,k))
if (evolve_tracer .ne. 0) then
do itracer=1,number_of_tracers
@@ -1252,28 +1217,12 @@ subroutine Con2PrimBoundsPolytype(CCTK_ARGUMENTS)
gyzr = 0.5d0 * (gyz(i,j,k) + gyz(i+xoffset,j+yoffset,k+zoffset))
gzzr = 0.5d0 * (gzz(i,j,k) + gzz(i+xoffset,j+yoffset,k+zoffset))
- if (conformal_state .eq. 0) then
- call SpatialDeterminant(gxxl,gxyl,gxzl,gyyl, gyzl,gzzl,avg_detl)
- call SpatialDeterminant(gxxr,gxyr,gxzr,gyyr, gyzr,gzzr,avg_detr)
- call UpperMetric(uxxl,uxyl,uxzl,uyyl,uyzl,uzzl,avg_detl,&
- gxxl,gxyl,gxzl,gyyl,gyzl,gzzl)
- call UpperMetric(uxxr,uxyr,uxzr,uyyr,uyzr,uzzr,avg_detr,&
- gxxr,gxyr,gxzr,gyyr,gyzr,gzzr)
- else
- psi4r = (0.5d0*(psi(i,j,k)+psi(i+xoffset,j+yoffset,k+zoffset)))**4
- psi4l = (0.5d0*(psi(i,j,k)+psi(i-xoffset,j-yoffset,k-zoffset)))**4
-
- call SpatialDeterminant(psi4l*gxxl,psi4l*gxyl,psi4l*gxzl,&
- psi4l*gyyl,psi4l*gyzl,psi4l*gzzl,avg_detl)
- call SpatialDeterminant(psi4r*gxxr,psi4r*gxyr,psi4r*gxzr,&
- psi4r*gyyr,psi4r*gyzr,psi4r*gzzr,avg_detr)
- call UpperMetric(uxxl,uxyl,uxzl,uyyl,uyzl,uzzl,avg_detl,&
- psi4l*gxxl,psi4l*gxyl,psi4l*gxzl,psi4l*gyyl,psi4l*gyzl,&
- psi4l*gzzl)
- call UpperMetric(uxxr,uxyr,uxzr,uyyr,uyzr,uzzr,avg_detr,&
- psi4r*gxxr,psi4r*gxyr,psi4r*gxzr,psi4r*gyyr,psi4r*gyzr,&
- psi4r*gzzr)
- end if
+ avg_detl = SPATIAL_DETERMINANT(gxxl,gxyl,gxzl,gyyl, gyzl,gzzl)
+ avg_detr = SPATIAL_DETERMINANT(gxxr,gxyr,gxzr,gyyr, gyzr,gzzr)
+ call UpperMetric(uxxl,uxyl,uxzl,uyyl,uyzl,uzzl,avg_detl,&
+ gxxl,gxyl,gxzl,gyyl,gyzl,gzzl)
+ call UpperMetric(uxxr,uxyr,uxzr,uyyr,uyzr,uzzr,avg_detr,&
+ gxxr,gxyr,gxzr,gyyr,gyzr,gzzr)
call Con2Prim_ptPolytype(GRHydro_eos_handle, densminus(i,j,k),&
sxminus(i,j,k),syminus(i,j,k),szminus(i,j,k),&
@@ -1350,28 +1299,12 @@ subroutine Con2PrimBoundsTracer(CCTK_ARGUMENTS)
gyzr = 0.5d0 * (gyz(i,j,k) + gyz(i+xoffset,j+yoffset,k+zoffset))
gzzr = 0.5d0 * (gzz(i,j,k) + gzz(i+xoffset,j+yoffset,k+zoffset))
- if (conformal_state .eq. 0) then
- call SpatialDeterminant(gxxl,gxyl,gxzl,gyyl, gyzl,gzzl,avg_detl)
- call SpatialDeterminant(gxxr,gxyr,gxzr,gyyr, gyzr,gzzr,avg_detr)
- call UpperMetric(uxxl,uxyl,uxzl,uyyl,uyzl,uzzl,avg_detl,&
- gxxl,gxyl,gxzl,gyyl,gyzl,gzzl)
- call UpperMetric(uxxr,uxyr,uxzr,uyyr,uyzr,uzzr,avg_detr,&
+ avg_detl = SPATIAL_DETERMINANT(gxxl,gxyl,gxzl,gyyl, gyzl,gzzl)
+ avg_detr = SPATIAL_DETERMINANT(gxxr,gxyr,gxzr,gyyr, gyzr,gzzr)
+ call UpperMetric(uxxl,uxyl,uxzl,uyyl,uyzl,uzzl,avg_detl,&
+ gxxl,gxyl,gxzl,gyyl,gyzl,gzzl)
+ call UpperMetric(uxxr,uxyr,uxzr,uyyr,uyzr,uzzr,avg_detr,&
gxxr,gxyr,gxzr,gyyr,gyzr,gzzr)
- else
- psi4r = (0.5d0*(psi(i,j,k)+psi(i+xoffset,j+yoffset,k+zoffset)))**4
- psi4l = (0.5d0*(psi(i,j,k)+psi(i-xoffset,j-yoffset,k-zoffset)))**4
-
- call SpatialDeterminant(psi4l*gxxl,psi4l*gxyl,psi4l*gxzl,&
- psi4l*gyyl,psi4l*gyzl,psi4l*gzzl,avg_detl)
- call SpatialDeterminant(psi4r*gxxr,psi4r*gxyr,psi4r*gxzr,&
- psi4r*gyyr,psi4r*gyzr,psi4r*gzzr,avg_detr)
- call UpperMetric(uxxl,uxyl,uxzl,uyyl,uyzl,uzzl,avg_detl,&
- psi4l*gxxl,psi4l*gxyl,psi4l*gxzl,psi4l*gyyl,psi4l*gyzl,&
- psi4l*gzzl)
- call UpperMetric(uxxr,uxyr,uxzr,uyyr,uyzr,uzzr,avg_detr,&
- psi4r*gxxr,psi4r*gxyr,psi4r*gxzr,psi4r*gyyr,psi4r*gyzr,&
- psi4r*gzzr)
- end if
do itracer=1,number_of_tracers
call Con2Prim_ptBoundsTracer(cons_tracerplus(i,j,k,itracer), &
diff --git a/src/GRHydro_EoSChangeGamma.F90 b/src/GRHydro_EoSChangeGamma.F90
index c075aae..6a502f4 100644
--- a/src/GRHydro_EoSChangeGamma.F90
+++ b/src/GRHydro_EoSChangeGamma.F90
@@ -12,6 +12,7 @@
#include "cctk.h"
#include "cctk_Parameters.h"
#include "cctk_Arguments.h"
+#include "GRHydro_Macros.h"
#define velx(i,j,k) vel(i,j,k,1)
#define vely(i,j,k) vel(i,j,k,2)
@@ -97,8 +98,8 @@ subroutine GRHydro_EoSChangeGamma(CCTK_ARGUMENTS)
do j = 1, cctk_lsh(2)
do i = 1, cctk_lsh(1)
- call SpatialDeterminant(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
- gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),det)
+ det = SPATIAL_DETERMINANT(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),\
+ gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
call prim2conpolytype(GRHydro_polytrope_handle,gxx(i,j,k),gxy(i,j,k),&
gxz(i,j,k),gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),&
det, dens(i,j,k),sx(i,j,k),sy(i,j,k),sz(i,j,k),&
@@ -313,8 +314,8 @@ subroutine GRHydro_EoSChangeGammaK_Shibata(CCTK_ARGUMENTS)
do j = 1, cctk_lsh(2)
do i = 1, cctk_lsh(1)
- call SpatialDeterminant(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
- gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),det)
+ det = SPATIAL_DETERMINANT(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),\
+ gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
call prim2con(GRHydro_eos_handle,gxx(i,j,k),gxy(i,j,k),&
gxz(i,j,k),gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),&
det, dens(i,j,k),sx(i,j,k),sy(i,j,k),sz(i,j,k),&
diff --git a/src/GRHydro_FluxSplit.F90 b/src/GRHydro_FluxSplit.F90
index c5fe6d7..d54e446 100644
--- a/src/GRHydro_FluxSplit.F90
+++ b/src/GRHydro_FluxSplit.F90
@@ -11,6 +11,7 @@
#include "cctk_Arguments.h"
#include "cctk_Parameters.h"
#include "cctk_Functions.h"
+#include "GRHydro_Macros.h"
/*@@
@routine GRHydro_FSAlpha
@@ -66,22 +67,11 @@ subroutine GRHydro_FSAlpha(CCTK_ARGUMENTS)
do j = 1, ny
do i = 1, nx
- if (conformal_state .eq. 0) then
- call SpatialDeterminant(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
- gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),det)
- call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det,&
- gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),gyy(i,j,k),&
- gyz(i,j,k),gzz(i,j,k))
- else
- psi4pt = psi(i,j,k)**4
- call SpatialDeterminant(psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),&
- psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k),det)
- call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det,&
- psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),&
- psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k))
- end if
+ det = SPATIAL_DETERMINANT(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),\
+ gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
+ call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det,&
+ gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),gyy(i,j,k),&
+ gyz(i,j,k),gzz(i,j,k))
if (shift_state .eq. 0) then
beta = 0.d0
@@ -123,22 +113,11 @@ subroutine GRHydro_FSAlpha(CCTK_ARGUMENTS)
do j = 1, ny
do i = 1, nx
- if (conformal_state .eq. 0) then
- call SpatialDeterminant(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
- gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),det)
- call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det,&
- gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),gyy(i,j,k),&
- gyz(i,j,k),gzz(i,j,k))
- else
- psi4pt = psi(i,j,k)**4
- call SpatialDeterminant(psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),&
- psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k),det)
- call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det,&
- psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),&
- psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k))
- end if
+ det = SPATIAL_DETERMINANT(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),\
+ gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
+ call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det,&
+ gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),gyy(i,j,k),&
+ gyz(i,j,k),gzz(i,j,k))
if (shift_state .eq. 0) then
beta = 0.d0
@@ -180,22 +159,11 @@ subroutine GRHydro_FSAlpha(CCTK_ARGUMENTS)
do j = 1, ny
do i = 1, nx
- if (conformal_state .eq. 0) then
- call SpatialDeterminant(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
- gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),det)
- call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det,&
- gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),gyy(i,j,k),&
- gyz(i,j,k),gzz(i,j,k))
- else
- psi4pt = psi(i,j,k)**4
- call SpatialDeterminant(psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),&
- psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k),det)
- call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det,&
- psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),&
- psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k))
- end if
+ det = SPATIAL_DETERMINANT(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),\
+ gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
+ call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det,&
+ gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),gyy(i,j,k),&
+ gyz(i,j,k),gzz(i,j,k))
if (shift_state .eq. 0) then
beta = 0.d0
@@ -347,28 +315,14 @@ subroutine GRHydro_SplitFlux(CCTK_ARGUMENTS)
else
dummy = betax(:,j,k)
end if
- if (conformal_state .eq. 0) then
- do i = 1, cctk_lsh(1)
- call SpatialDeterminant(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
- gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),det(i))
- call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det(i),&
- gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),gyy(i,j,k),&
- gyz(i,j,k),gzz(i,j,k))
- upper(i) = uxx
- end do
- else
- do i = 1, cctk_lsh(1)
- psi4pt = psi(i,j,k)**4
- call SpatialDeterminant(psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),&
- psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k),det(i))
- call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det(i),&
- psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),&
- psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k))
- upper(i) = uxx
- end do
- end if
+ do i = 1, cctk_lsh(1)
+ det = SPATIAL_DETERMINANT(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),\
+ gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
+ call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det(i),&
+ gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),gyy(i,j,k),&
+ gyz(i,j,k),gzz(i,j,k))
+ upper(i) = uxx
+ end do
call GRHydro_SplitFlux_1D(GRHydro_eos_handle, nx,&
fs_alpha1, fs_alpha2, fs_alpha3, fs_alpha4, fs_alpha5, &
@@ -398,28 +352,14 @@ subroutine GRHydro_SplitFlux(CCTK_ARGUMENTS)
else
dummy = betay(i,:,k)
end if
- if (conformal_state .eq. 0) then
- do j = 1, cctk_lsh(2)
- call SpatialDeterminant(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
- gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),det(j))
- call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det(j),&
- gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),gyy(i,j,k),&
- gyz(i,j,k),gzz(i,j,k))
- upper(j) = uyy
- end do
- else
- do j = 1, cctk_lsh(2)
- psi4pt = psi(i,j,k)**4
- call SpatialDeterminant(psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),&
- psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k),det(j))
- call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det(j),&
- psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),&
- psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k))
- upper(j) = uyy
- end do
- end if
+ do j = 1, cctk_lsh(2)
+ det = SPATIAL_DETERMINANT(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),\
+ gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
+ call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det(j),&
+ gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),gyy(i,j,k),&
+ gyz(i,j,k),gzz(i,j,k))
+ upper(j) = uyy
+ end do
call GRHydro_SplitFlux_1D(GRHydro_eos_handle, ny,&
fs_alpha1, fs_alpha2, fs_alpha3, fs_alpha4, fs_alpha5, &
@@ -450,28 +390,14 @@ subroutine GRHydro_SplitFlux(CCTK_ARGUMENTS)
dummy = betaz(i,j,:)
end if
- if (conformal_state .eq. 0) then
- do k = 1, cctk_lsh(3)
- call SpatialDeterminant(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
- gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),det(k))
- call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det(k),&
- gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),gyy(i,j,k),&
- gyz(i,j,k),gzz(i,j,k))
- upper(k) = uzz
- end do
- else
- do k = 1, cctk_lsh(3)
- psi4pt = psi(i,j,k)**4
- call SpatialDeterminant(psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),&
- psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k),det(k))
- call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det(k),&
- psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),&
- psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k))
- upper(k) = uzz
- end do
- end if
+ do k = 1, cctk_lsh(3)
+ det = SPATIAL_DETERMINANT(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),\
+ gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
+ call UpperMetric(uxx,uxy,uxz,uyy,uyz,uzz,det(k),&
+ gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),gyy(i,j,k),&
+ gyz(i,j,k),gzz(i,j,k))
+ upper(k) = uzz
+ end do
call GRHydro_SplitFlux_1D(GRHydro_eos_handle, nz,&
fs_alpha1, fs_alpha2, fs_alpha3, fs_alpha4, fs_alpha5, &
diff --git a/src/GRHydro_HLLE.F90 b/src/GRHydro_HLLE.F90
index d32f4a7..b0b5ba4 100644
--- a/src/GRHydro_HLLE.F90
+++ b/src/GRHydro_HLLE.F90
@@ -12,7 +12,7 @@
#include "cctk_Parameters.h"
#include "cctk_Arguments.h"
#include "cctk_Functions.h"
-
+#include "GRHydro_Macros.h"
#include "SpaceMask.h"
/*@@
@@ -47,7 +47,7 @@ subroutine GRHydro_HLLEGeneral(CCTK_ARGUMENTS)
CCTK_REAL, dimension(6) :: prim_p, prim_m
CCTK_REAL :: charmin, charmax, charpm,avg_alp,avg_det
CCTK_REAL :: gxxh, gxyh, gxzh, gyyh, gyzh, gzzh, uxxh, uxyh, &
- uxzh, uyyh, uyzh, uzzh, avg_beta, usendh, alp_l, alp_r, psi4h, &
+ uxzh, uyyh, uyzh, uzzh, avg_beta, usendh, alp_l, alp_r, &
cs2_p, cs2_m, dpdeps_p, dpdeps_m
CCTK_INT :: type_bits, trivial, not_trivial
@@ -154,14 +154,7 @@ subroutine GRHydro_HLLEGeneral(CCTK_ARGUMENTS)
gyzh = 0.5d0 * (gyz(i+xoffset,j+yoffset,k+zoffset) + gyz(i,j,k))
gzzh = 0.5d0 * (gzz(i+xoffset,j+yoffset,k+zoffset) + gzz(i,j,k))
- if (conformal_state .eq. 0) then
- psi4h = 1.d0
- else
- psi4h = (0.5d0*(psi(i,j,k)+psi(i+xoffset,j+yoffset,k+zoffset)))**4
- end if
-
- call SpatialDeterminant(psi4h*gxxh,psi4h*gxyh,psi4h*gxzh,&
- psi4h*gyyh,psi4h*gyzh,psi4h*gzzh,avg_det)
+ avg_det = SPATIAL_DETERMINANT(gxxh,gxyh,gxzh,gyyh,gyzh,gzzh)
!!$ If the Riemann problem is trivial, just calculate the fluxes from the
!!$ left state and skip to the next cell
@@ -190,8 +183,8 @@ subroutine GRHydro_HLLEGeneral(CCTK_ARGUMENTS)
else !!! The end of this branch is right at the bottom of the routine
call UpperMetric(uxxh, uxyh, uxzh, uyyh, uyzh, uzzh, &
- avg_det,psi4h*gxxh, psi4h*gxyh, psi4h*gxzh, &
- psi4h*gyyh, psi4h*gyzh, psi4h*gzzh)
+ avg_det,gxxh,gxyh,gxzh, &
+ gyyh,gyzh, gzzh)
if (flux_direction == 1) then
usendh = uxxh
@@ -217,14 +210,14 @@ subroutine GRHydro_HLLEGeneral(CCTK_ARGUMENTS)
call eigenvalues_general(&
prim_m(2),prim_m(3),prim_m(4),cs2_m, &
lamminus,&
- psi4h*gxxh,psi4h*gxyh,psi4h*gxzh,&
- psi4h*gyyh,psi4h*gyzh,psi4h*gzzh,&
+ gxxh,gxyh,gxzh,&
+ gyyh,gyzh,gzzh,&
usendh,avg_alp,avg_beta)
call eigenvalues_general(&
prim_p(2),prim_p(3),prim_p(4),cs2_p, &
lamplus,&
- psi4h*gxxh,psi4h*gxyh,psi4h*gxzh,&
- psi4h*gyyh,psi4h*gyzh,psi4h*gzzh,&
+ gxxh,gxyh,gxzh,&
+ gyyh,gyzh,gzzh,&
usendh,avg_alp,avg_beta)
call num_x_flux(cons_p(1),cons_p(2),cons_p(3),cons_p(4),cons_p(5),&
fplus(1),fplus(2),fplus(3),fplus(4),fplus(5),&
@@ -238,14 +231,14 @@ subroutine GRHydro_HLLEGeneral(CCTK_ARGUMENTS)
call eigenvalues_general(&
prim_m(3),prim_m(4),prim_m(2),cs2_m, &
lamminus,&
- psi4h*gyyh,psi4h*gyzh,psi4h*gxyh,&
- psi4h*gzzh,psi4h*gxzh,psi4h*gxxh,&
+ gyyh,gyzh,gxyh,&
+ gzzh,gxzh,gxxh,&
usendh,avg_alp,avg_beta)
call eigenvalues_general(&
prim_p(3),prim_p(4),prim_p(2),cs2_p, &
lamplus,&
- psi4h*gyyh,psi4h*gyzh,psi4h*gxyh,&
- psi4h*gzzh,psi4h*gxzh,psi4h*gxxh,&
+ gyyh,gyzh,gxyh,&
+ gzzh,gxzh,gxxh,&
usendh,avg_alp,avg_beta)
call num_x_flux(cons_p(1),cons_p(3),cons_p(4),cons_p(2),cons_p(5),&
fplus(1),fplus(3),fplus(4),fplus(2),fplus(5),&
@@ -259,14 +252,14 @@ subroutine GRHydro_HLLEGeneral(CCTK_ARGUMENTS)
call eigenvalues_general(&
prim_m(4),prim_m(2),prim_m(3),cs2_m, &
lamminus,&
- psi4h*gzzh,psi4h*gxzh,psi4h*gyzh,&
- psi4h*gxxh,psi4h*gxyh,psi4h*gyyh,&
+ gzzh,gxzh,gyzh,&
+ gxxh,gxyh,gyyh,&
usendh,avg_alp,avg_beta)
call eigenvalues_general(&
prim_p(4),prim_p(2),prim_p(3),cs2_p, &
lamplus,&
- psi4h*gzzh,psi4h*gxzh,psi4h*gyzh,&
- psi4h*gxxh,psi4h*gxyh,psi4h*gyyh,&
+ gzzh,gxzh,gyzh,&
+ gxxh,gxyh,gyyh,&
usendh,avg_alp,avg_beta)
call num_x_flux(cons_p(1),cons_p(4),cons_p(2),cons_p(3),cons_p(5),&
fplus(1),fplus(4),fplus(2),fplus(3),fplus(5), &
@@ -358,7 +351,7 @@ subroutine GRHydro_HLLE_TracerGeneral(CCTK_ARGUMENTS)
CCTK_REAL, dimension(6) :: prim_p, prim_m
CCTK_REAL :: charmin, charmax, charpm,avg_alp,avg_det
CCTK_REAL :: gxxh, gxyh, gxzh, gyyh, gyzh, gzzh, uxxh, uxyh, &
- uxzh, uyyh, uyzh, uzzh, avg_beta, usendh, alp_l, alp_r, psi4h, &
+ uxzh, uyyh, uyzh, uzzh, avg_beta, usendh, alp_l, alp_r, &
cs2_p, cs2_m, dpdeps_p, dpdeps_m
integer tadmor
@@ -438,21 +431,14 @@ subroutine GRHydro_HLLE_TracerGeneral(CCTK_ARGUMENTS)
gyzh = 0.5d0 * (gyz(i+xoffset,j+yoffset,k+zoffset) + gyz(i,j,k))
gzzh = 0.5d0 * (gzz(i+xoffset,j+yoffset,k+zoffset) + gzz(i,j,k))
- if (conformal_state .eq. 0) then
- psi4h = 1.d0
- else
- psi4h = (0.5d0*(psi(i,j,k)+psi(i+xoffset,j+yoffset,k+zoffset)))**4
- end if
-
- call SpatialDeterminant(psi4h*gxxh,psi4h*gxyh,psi4h*gxzh,&
- psi4h*gyyh,psi4h*gyzh,psi4h*gzzh,avg_det)
+ avg_det = SPATIAL_DETERMINANT(gxxh,gxyh,gxzh,gyyh,gyzh,gzzh)
!!$ If the Riemann problem is trivial, just calculate the fluxes from the
!!$ left state and skip to the next cell
call UpperMetric(uxxh, uxyh, uxzh, uyyh, uyzh, uzzh, &
- avg_det,psi4h*gxxh, psi4h*gxyh, psi4h*gxzh, &
- psi4h*gyyh, psi4h*gyzh, psi4h*gzzh)
+ avg_det,gxxh, gxyh, gxzh, &
+ gyyh, gyzh, gzzh)
if (flux_direction == 1) then
usendh = uxxh
@@ -470,14 +456,14 @@ subroutine GRHydro_HLLE_TracerGeneral(CCTK_ARGUMENTS)
call eigenvalues_general(&
prim_m(2),prim_m(3),prim_m(4),cs2_m, &
lamminus,&
- psi4h*gxxh,psi4h*gxyh,psi4h*gxzh,&
- psi4h*gyyh,psi4h*gyzh,psi4h*gzzh,&
+ gxxh,gxyh,gxzh,&
+ gyyh,gyzh,gzzh,&
usendh,avg_alp,avg_beta)
call eigenvalues_general(&
prim_p(2),prim_p(3),prim_p(4),cs2_p, &
lamplus,&
- psi4h*gxxh,psi4h*gxyh,psi4h*gxzh,&
- psi4h*gyyh,psi4h*gyzh,psi4h*gzzh,&
+ gxxh,gxyh,gxzh,&
+ gyyh,gyzh,gzzh,&
usendh,avg_alp,avg_beta)
fplus(:) = (velxplus(i,j,k) - avg_beta / avg_alp) * &
cons_tracerplus(i,j,k,:)
@@ -487,14 +473,14 @@ subroutine GRHydro_HLLE_TracerGeneral(CCTK_ARGUMENTS)
call eigenvalues_general(&
prim_m(3),prim_m(4),prim_m(2),cs2_m, &
lamminus,&
- psi4h*gyyh,psi4h*gyzh,psi4h*gxyh,&
- psi4h*gzzh,psi4h*gxzh,psi4h*gxxh,&
+ gyyh,gyzh,gxyh,&
+ gzzh,gxzh,gxxh,&
usendh,avg_alp,avg_beta)
call eigenvalues_general(&
prim_p(3),prim_p(4),prim_p(2),cs2_p, &
lamplus,&
- psi4h*gyyh,psi4h*gyzh,psi4h*gxyh,&
- psi4h*gzzh,psi4h*gxzh,psi4h*gxxh,&
+ gyyh,gyzh,gxyh,&
+ gzzh,gxzh,gxxh,&
usendh,avg_alp,avg_beta)
fplus(:) = (velyplus(i,j,k) - avg_beta / avg_alp) * &
cons_tracerplus(i,j,k,:)
@@ -504,14 +490,14 @@ subroutine GRHydro_HLLE_TracerGeneral(CCTK_ARGUMENTS)
call eigenvalues_general(&
prim_m(4),prim_m(2),prim_m(3),cs2_m, &
lamminus,&
- psi4h*gzzh,psi4h*gxzh,psi4h*gyzh,&
- psi4h*gxxh,psi4h*gxyh,psi4h*gyyh,&
+ gzzh,gxzh,gyzh,&
+ gxxh,gxyh,gyyh,&
usendh,avg_alp,avg_beta)
call eigenvalues_general(&
prim_p(4),prim_p(2),prim_p(3),cs2_p, &
lamplus,&
- psi4h*gzzh,psi4h*gxzh,psi4h*gyzh,&
- psi4h*gxxh,psi4h*gxyh,psi4h*gyyh,&
+ gzzh,gxzh,gyzh,&
+ gxxh,gxyh,gyyh,&
usendh,avg_alp,avg_beta)
fplus(:) = (velzplus(i,j,k) - avg_beta / avg_alp) * &
cons_tracerplus(i,j,k,:)
diff --git a/src/GRHydro_HLLEPoly.F90 b/src/GRHydro_HLLEPoly.F90
index 084fb33..ed3c4f3 100644
--- a/src/GRHydro_HLLEPoly.F90
+++ b/src/GRHydro_HLLEPoly.F90
@@ -13,6 +13,7 @@
#include "cctk_Arguments.h"
#include "cctk_Functions.h"
+#include "GRHydro_Macros.h"
#include "SpaceMask.h"
/*@@
@@ -44,7 +45,7 @@ subroutine GRHydro_HLLE(CCTK_ARGUMENTS)
CCTK_REAL, dimension(5) :: qdiff
CCTK_REAL :: charmin, charmax, charpm,avg_alp,avg_det
CCTK_REAL :: gxxh, gxyh, gxzh, gyyh, gyzh, gzzh, uxxh, uxyh, &
- uxzh, uyyh, uyzh, uzzh, avg_beta, usendh, alp_l, alp_r, psi4h
+ uxzh, uyyh, uyzh, uzzh, avg_beta, usendh, alp_l, alp_r
CCTK_INT :: type_bits, trivial, not_trivial
@@ -121,14 +122,8 @@ subroutine GRHydro_HLLE(CCTK_ARGUMENTS)
gyzh = 0.5d0 * (gyz(i+xoffset,j+yoffset,k+zoffset) + gyz(i,j,k))
gzzh = 0.5d0 * (gzz(i+xoffset,j+yoffset,k+zoffset) + gzz(i,j,k))
- if (conformal_state .eq. 0) then
- psi4h = 1.d0
- else
- psi4h = (0.5d0*(psi(i,j,k)+psi(i+xoffset,j+yoffset,k+zoffset)))**4
- end if
-
- call SpatialDeterminant(psi4h*gxxh,psi4h*gxyh,psi4h*gxzh,&
- psi4h*gyyh,psi4h*gyzh,psi4h*gzzh,avg_det)
+ avg_det = SPATIAL_DETERMINANT(gxxh,gxyh,gxzh,\
+ gyyh,gyzh,gzzh)
!!$ If the Riemann problem is trivial, just calculate the fluxes from the
!!$ left state and skip to the next cell
@@ -160,8 +155,8 @@ subroutine GRHydro_HLLE(CCTK_ARGUMENTS)
else !!! The end of this branch is right at the bottom of the routine
call UpperMetric(uxxh, uxyh, uxzh, uyyh, uyzh, uzzh, &
- avg_det,psi4h*gxxh, psi4h*gxyh, psi4h*gxzh, &
- psi4h*gyyh, psi4h*gyzh, psi4h*gzzh)
+ avg_det,gxxh, gxyh, gxzh, &
+ gyyh, gyzh, gzzh)
if (flux_direction == 1) then
usendh = uxxh
@@ -191,14 +186,14 @@ subroutine GRHydro_HLLE(CCTK_ARGUMENTS)
velzminus(i+xoffset,j+yoffset,k+zoffset),&
epsminus(i+xoffset,j+yoffset,k+zoffset),&
w_lorentzminus(i+xoffset,j+yoffset,k+zoffset),&
- lamminus,psi4h*gxxh,psi4h*gxyh,psi4h*gxzh,psi4h*gyyh,&
- psi4h*gyzh,psi4h*gzzh,&
+ lamminus,gxxh,gxyh,gxzh,gyyh,&
+ gyzh,gzzh,&
usendh,avg_alp,avg_beta)
call eigenvalues(GRHydro_eos_handle,rhoplus(i,j,k),&
velxplus(i,j,k),velyplus(i,j,k),&
velzplus(i,j,k),epsplus(i,j,k),w_lorentzplus(i,j,k),&
- lamplus,psi4h*gxxh,psi4h*gxyh,psi4h*gxzh,psi4h*gyyh,&
- psi4h*gyzh,psi4h*gzzh,&
+ lamplus,gxxh,gxyh,gxzh,gyyh,&
+ gyzh,gzzh,&
usendh,avg_alp,avg_beta)
call num_x_flux(consp(1),consp(2),consp(3),consp(4),consp(5),&
fplus(1),fplus(2),fplus(3),fplus(4),&
@@ -218,14 +213,14 @@ subroutine GRHydro_HLLE(CCTK_ARGUMENTS)
velxminus(i+xoffset,j+yoffset,k+zoffset),&
epsminus(i+xoffset,j+yoffset,k+zoffset),&
w_lorentzminus(i+xoffset,j+yoffset,k+zoffset),&
- lamminus,psi4h*gyyh,psi4h*gyzh,psi4h*gxyh,psi4h*gzzh,&
- psi4h*gxzh,psi4h*gxxh,&
+ lamminus,gyyh,gyzh,gxyh,gzzh,&
+ gxzh,gxxh,&
usendh,avg_alp,avg_beta)
call eigenvalues(GRHydro_eos_handle,rhoplus(i,j,k),&
velyplus(i,j,k),velzplus(i,j,k),&
velxplus(i,j,k),epsplus(i,j,k),w_lorentzplus(i,j,k),&
- lamplus,psi4h*gyyh,psi4h*gyzh,psi4h*gxyh,psi4h*gzzh,&
- psi4h*gxzh,psi4h*gxxh,&
+ lamplus,gyyh,gyzh,gxyh,gzzh,&
+ gxzh,gxxh,&
usendh,avg_alp,avg_beta)
call num_x_flux(consp(1),consp(3),consp(4),consp(2),consp(5),&
fplus(1),fplus(3),fplus(4),fplus(2),&
@@ -245,14 +240,14 @@ subroutine GRHydro_HLLE(CCTK_ARGUMENTS)
velyminus(i+xoffset,j+yoffset,k+zoffset),&
epsminus(i+xoffset,j+yoffset,k+zoffset),&
w_lorentzminus(i+xoffset,j+yoffset,k+zoffset),&
- lamminus,psi4h*gzzh,psi4h*gxzh,psi4h*gyzh,&
- psi4h*gxxh,psi4h*gxyh,psi4h*gyyh,&
+ lamminus,gzzh,gxzh,gyzh,&
+ gxxh,gxyh,gyyh,&
usendh,avg_alp,avg_beta)
call eigenvalues(GRHydro_eos_handle,rhoplus(i,j,k),&
velzplus(i,j,k),velxplus(i,j,k),&
velyplus(i,j,k),epsplus(i,j,k),w_lorentzplus(i,j,k),&
- lamplus,psi4h*gzzh,psi4h*gxzh,psi4h*gyzh,&
- psi4h*gxxh,psi4h*gxyh,psi4h*gyyh,&
+ lamplus,gzzh,gxzh,gyzh,&
+ gxxh,gxyh,gyyh,&
usendh,avg_alp,avg_beta)
call num_x_flux(consp(1),consp(4),consp(2),consp(3),consp(5),&
fplus(1),fplus(4),fplus(2),fplus(3),&
@@ -335,7 +330,7 @@ subroutine GRHydro_HLLE_Tracer(CCTK_ARGUMENTS)
CCTK_REAL, dimension(number_of_tracers) :: qdiff
CCTK_REAL :: charmin, charmax, charpm,avg_alp,avg_det
CCTK_REAL :: gxxh, gxyh, gxzh, gyyh, gyzh, gzzh, uxxh, uxyh, &
- uxzh, uyyh, uyzh, uzzh, avg_beta, usendh, alp_l, alp_r, psi4h
+ uxzh, uyyh, uyzh, uzzh, avg_beta, usendh, alp_l, alp_r
CCTK_INT :: type_bits, trivial, not_trivial
@@ -404,18 +399,12 @@ subroutine GRHydro_HLLE_Tracer(CCTK_ARGUMENTS)
gyzh = 0.5d0 * (gyz(i+xoffset,j+yoffset,k+zoffset) + gyz(i,j,k))
gzzh = 0.5d0 * (gzz(i+xoffset,j+yoffset,k+zoffset) + gzz(i,j,k))
- if (conformal_state .eq. 0) then
- psi4h = 1.d0
- else
- psi4h = (0.5d0*(psi(i,j,k)+psi(i+xoffset,j+yoffset,k+zoffset)))**4
- end if
-
- call SpatialDeterminant(psi4h*gxxh,psi4h*gxyh,psi4h*gxzh,&
- psi4h*gyyh,psi4h*gyzh,psi4h*gzzh,avg_det)
-
+ avg_det = SPATIAL_DETERMINANT(gxxh,gxyh,gxzh,\
+ gyyh,gyzh,gzzh)
+
call UpperMetric(uxxh, uxyh, uxzh, uyyh, uyzh, uzzh, &
- avg_det,psi4h*gxxh, psi4h*gxyh, psi4h*gxzh, &
- psi4h*gyyh, psi4h*gyzh, psi4h*gzzh)
+ avg_det,gxxh, gxyh, gxzh, &
+ gyyh, gyzh, gzzh)
if (flux_direction == 1) then
usendh = uxxh
@@ -441,14 +430,14 @@ subroutine GRHydro_HLLE_Tracer(CCTK_ARGUMENTS)
velzminus(i+xoffset,j+yoffset,k+zoffset),&
epsminus(i+xoffset,j+yoffset,k+zoffset),&
w_lorentzminus(i+xoffset,j+yoffset,k+zoffset),&
- lamminus,psi4h*gxxh,psi4h*gxyh,psi4h*gxzh,psi4h*gyyh,&
- psi4h*gyzh,psi4h*gzzh,&
+ lamminus,gxxh,gxyh,gxzh,gyyh,&
+ gyzh,gzzh,&
usendh,avg_alp,avg_beta)
call eigenvalues(GRHydro_eos_handle,rhoplus(i,j,k),&
velxplus(i,j,k),velyplus(i,j,k),&
velzplus(i,j,k),epsplus(i,j,k),w_lorentzplus(i,j,k),&
- lamplus,psi4h*gxxh,psi4h*gxyh,psi4h*gxzh,psi4h*gyyh,&
- psi4h*gyzh,psi4h*gzzh,&
+ lamplus,gxxh,gxyh,gxzh,gyyh,&
+ gyzh,gzzh,&
usendh,avg_alp,avg_beta)
fplus(:) = (velxplus(i,j,k) - avg_beta / avg_alp) * &
cons_tracerplus(i,j,k,:)
@@ -462,14 +451,14 @@ subroutine GRHydro_HLLE_Tracer(CCTK_ARGUMENTS)
velxminus(i+xoffset,j+yoffset,k+zoffset),&
epsminus(i+xoffset,j+yoffset,k+zoffset),&
w_lorentzminus(i+xoffset,j+yoffset,k+zoffset),&
- lamminus,psi4h*gyyh,psi4h*gyzh,psi4h*gxyh,psi4h*gzzh,&
- psi4h*gxzh,psi4h*gxxh,&
+ lamminus,gyyh,gyzh,gxyh,gzzh,&
+ gxzh,gxxh,&
usendh,avg_alp,avg_beta)
call eigenvalues(GRHydro_eos_handle,rhoplus(i,j,k),&
velyplus(i,j,k),velzplus(i,j,k),&
velxplus(i,j,k),epsplus(i,j,k),w_lorentzplus(i,j,k),&
- lamplus,psi4h*gyyh,psi4h*gyzh,psi4h*gxyh,psi4h*gzzh,&
- psi4h*gxzh,psi4h*gxxh,&
+ lamplus,gyyh,gyzh,gxyh,gzzh,&
+ gxzh,gxxh,&
usendh,avg_alp,avg_beta)
fplus(:) = (velyplus(i,j,k) - avg_beta / avg_alp) * &
cons_tracerplus(i,j,k,:)
@@ -483,14 +472,14 @@ subroutine GRHydro_HLLE_Tracer(CCTK_ARGUMENTS)
velyminus(i+xoffset,j+yoffset,k+zoffset),&
epsminus(i+xoffset,j+yoffset,k+zoffset),&
w_lorentzminus(i+xoffset,j+yoffset,k+zoffset),&
- lamminus,psi4h*gzzh,psi4h*gxzh,psi4h*gyzh,&
- psi4h*gxxh,psi4h*gxyh,psi4h*gyyh,&
+ lamminus,gzzh,gxzh,gyzh,&
+ gxxh,gxyh,gyyh,&
usendh,avg_alp,avg_beta)
call eigenvalues(GRHydro_eos_handle,rhoplus(i,j,k),&
velzplus(i,j,k),velxplus(i,j,k),&
velyplus(i,j,k),epsplus(i,j,k),w_lorentzplus(i,j,k),&
- lamplus,psi4h*gzzh,psi4h*gxzh,psi4h*gyzh,&
- psi4h*gxxh,psi4h*gxyh,psi4h*gyyh,&
+ lamplus,gzzh,gxzh,gyzh,&
+ gxxh,gxyh,gyyh,&
usendh,avg_alp,avg_beta)
fplus(:) = (velzplus(i,j,k) - avg_beta / avg_alp) * &
cons_tracerplus(i,j,k,:)
diff --git a/src/GRHydro_Marquina.F90 b/src/GRHydro_Marquina.F90
index 9d1e946..f3c2030 100644
--- a/src/GRHydro_Marquina.F90
+++ b/src/GRHydro_Marquina.F90
@@ -15,6 +15,7 @@
#include "cctk_Parameters.h"
#include "cctk_Functions.h"
+#include "GRHydro_Macros.h"
#include "SpaceMask.h"
/*@@
@@ -139,21 +140,9 @@ subroutine GRHydro_Marquina(CCTK_ARGUMENTS)
gzzh = 0.5d0 * (gzz(i+xoffset,j+yoffset,k+zoffset) + &
gzz(i,j,k))
- if (conformal_state > 0) then
-
- psi4h = (0.5d0*(psi(i,j,k)+psi(i+xoffset,j+yoffset,k+zoffset)))**4
- gxxh = gxxh * psi4h
- gxyh = gxyh * psi4h
- gxzh = gxzh * psi4h
- gyyh = gyyh * psi4h
- gyzh = gyzh * psi4h
- gzzh = gzzh * psi4h
-
- end if
-
!!$ routine to calculate the determinant of the metric
- call SpatialDeterminant(gxxh,gxyh,gxzh,gyyh,gyzh,gzzh,avg_det)
+ avg_det = SPATIAL_DETERMINANT(gxxh,gxyh,gxzh,gyyh,gyzh,gzzh)
!!$ If the Riemann problem is trivial, just calculate the fluxes from the
!!$ left state and skip to the next cell
@@ -491,22 +480,10 @@ subroutine GRHydro_MarquinaGeneral(CCTK_ARGUMENTS)
gzzh = 0.5d0 * (gzz(i+xoffset,j+yoffset,k+zoffset) + &
gzz(i,j,k))
- if (conformal_state > 0) then
-
- psi4h = (0.5d0*(psi(i,j,k)+psi(i+xoffset,j+yoffset,k+zoffset)))**4
- gxxh = gxxh * psi4h
- gxyh = gxyh * psi4h
- gxzh = gxzh * psi4h
- gyyh = gyyh * psi4h
- gyzh = gyzh * psi4h
- gzzh = gzzh * psi4h
-
- end if
-
!!$ routine to calculate the determinant of the metric
- call SpatialDeterminant(gxxh,gxyh,gxzh,gyyh,gyzh,gzzh,avg_det)
-
+ avg_det = SPATIAL_DETERMINANT(gxxh,gxyh,gxzh,gyyh,gyzh,gzzh)
+
!!$ If the Riemann problem is trivial the flux is already correct
if (SpaceMask_CheckStateBitsF90(space_mask, i, j, k, type_bits, trivial)) then
diff --git a/src/GRHydro_PPM.F90 b/src/GRHydro_PPM.F90
index cc42787..ea1607f 100644
--- a/src/GRHydro_PPM.F90
+++ b/src/GRHydro_PPM.F90
@@ -10,6 +10,7 @@
#include "cctk.h"
#include "cctk_Arguments.h"
#include "cctk_Parameters.h"
+#include "GRHydro_Macros.h"
subroutine PPM_TVD(origm, orig, origp, bextm, bextp)
CCTK_REAL :: origm, orig, origp, bextm, bextp
@@ -217,8 +218,8 @@ trivial_rp = .true.
agyy = 0.5d0*( psi4(i)*gyy(i) + psi4(i+1)*gyy(i+1) )
agyz = 0.5d0*( psi4(i)*gyz(i) + psi4(i+1)*gyz(i+1) )
agzz = 0.5d0*( psi4(i)*gzz(i) + psi4(i+1)*gzz(i+1) )
- call SpatialDeterminant(agxx, agxy, agxz,&
- agyy, agyz, agzz, det)
+ det = SPATIAL_DETERMINANT(agxx, agxy, agxz, \
+ agyy, agyz, agzz)
call UpperMetric (uxx, uxy, uxz, uyy, uyz, uzz, &
det, agxx, agxy, agxz, agyy, agyz, agzz)
call eigenvalues(handle,&
diff --git a/src/GRHydro_ParamCheck.F90 b/src/GRHydro_ParamCheck.F90
index f311659..f192071 100644
--- a/src/GRHydro_ParamCheck.F90
+++ b/src/GRHydro_ParamCheck.F90
@@ -67,12 +67,7 @@ subroutine GRHydro_ParamCheck(CCTK_ARGUMENTS)
if (.not.(CCTK_EQUALS(metric_type, "Physical").or.&
CCTK_EQUALS(metric_type, "Static Conformal"))) then
- call CCTK_PARAMWARN("GRHydro only knows how to deal with physical metric type at the moment. Complain to the maintainers...")
- end if
-
- if (.not.CCTK_EQUALS(metric_type, "Static Conformal")) then
- call CCTK_INFO("GRHydro will use the physical metric and set conformal_state=0.")
- conformal_state = 0
+ call CCTK_WARN(0,"GRHydro only knows how to deal with physical metric type at the moment. Complain to the maintainers...")
end if
diff --git a/src/GRHydro_Prim2Con.F90 b/src/GRHydro_Prim2Con.F90
index 7951846..268e8e4 100644
--- a/src/GRHydro_Prim2Con.F90
+++ b/src/GRHydro_Prim2Con.F90
@@ -11,6 +11,7 @@
#include "cctk_Arguments.h"
#include "cctk_Parameters.h"
#include "cctk_Functions.h"
+#include "GRHydro_Macros.h"
#define velx(i,j,k) vel(i,j,k,1)
#define vely(i,j,k) vel(i,j,k,2)
@@ -63,25 +64,8 @@ subroutine primitive2conservative(CCTK_ARGUMENTS)
gyzr = 0.5d0 * (gyz(i,j,k) + gyz(i+xoffset,j+yoffset,k+zoffset))
gzzr = 0.5d0 * (gzz(i,j,k) + gzz(i+xoffset,j+yoffset,k+zoffset))
- if (.not.(conformal_state .eq. 0)) then
- psi4r = (0.5d0*(psi(i,j,k)+psi(i+xoffset,j+yoffset,k+zoffset)))**4
- psi4l = (0.5d0*(psi(i,j,k)+psi(i-xoffset,j-yoffset,k-zoffset)))**4
- gxxr = gxxr * psi4r
- gxyr = gxyr * psi4r
- gxzr = gxzr * psi4r
- gyyr = gyyr * psi4r
- gyzr = gyzr * psi4r
- gzzr = gzzr * psi4r
- gxxl = gxxl * psi4l
- gxyl = gxyl * psi4l
- gxzl = gxzl * psi4l
- gyyl = gyyl * psi4l
- gyzl = gyzl * psi4l
- gzzl = gzzl * psi4l
- end if
-
- call SpatialDeterminant(gxxl,gxyl,gxzl,gyyl, gyzl,gzzl,avg_detl)
- call SpatialDeterminant(gxxr,gxyr,gxzr,gyyr, gyzr,gzzr,avg_detr)
+ avg_detl = SPATIAL_DETERMINANT(gxxl,gxyl,gxzl,gyyl, gyzl,gzzl)
+ avg_detr = SPATIAL_DETERMINANT(gxxr,gxyr,gxzr,gyyr, gyzr,gzzr)
call prim2con(GRHydro_eos_handle, gxxl,gxyl,gxzl,gyyl,gyzl,gzzl, &
avg_detl,densminus(i,j,k),sxminus(i,j,k),&
@@ -201,23 +185,17 @@ subroutine Primitive2ConservativeCells(CCTK_ARGUMENTS)
do j = GRHydro_stencil,cctk_lsh(2)-GRHydro_stencil+1
do i = GRHydro_stencil,cctk_lsh(1)-GRHydro_stencil+1
- if (conformal_state .eq. 0) then
- psi4pt = 1d0
- call SpatialDeterminant(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
- gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),det)
- else
- psi4pt = psi(i,j,k)**4
- call SpatialDeterminant(psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),&
- psi4pt*gxz(i,j,k),psi4pt*gyy(i,j,k),psi4pt*gyz(i,j,k),&
- psi4pt*gzz(i,j,k),det)
- end if
- call prim2con(GRHydro_eos_handle,psi4pt*gxx(i,j,k),&
- psi4pt*gxy(i,j,k),psi4pt*gxz(i,j,k),&
- psi4pt*gyy(i,j,k),psi4pt*gyz(i,j,k),psi4pt*gzz(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))
-
+ psi4pt = 1.0d0
+ det = SPATIAL_DETERMINANT(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k), \
+ gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
+
+ call prim2con(GRHydro_eos_handle,psi4pt*gxx(i,j,k),&
+ psi4pt*gxy(i,j,k),psi4pt*gxz(i,j,k),&
+ psi4pt*gyy(i,j,k),psi4pt*gyz(i,j,k),psi4pt*gzz(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
@@ -272,25 +250,8 @@ subroutine Prim2ConservativePolytype(CCTK_ARGUMENTS)
gyzr = 0.5d0 * (gyz(i,j,k) + gyz(i+xoffset,j+yoffset,k+zoffset))
gzzr = 0.5d0 * (gzz(i,j,k) + gzz(i+xoffset,j+yoffset,k+zoffset))
- if (.not.(conformal_state .eq. 0)) then
- psi4r = (0.5d0*(psi(i,j,k)+psi(i+xoffset,j+yoffset,k+zoffset)))**4
- psi4l = (0.5d0*(psi(i,j,k)+psi(i-xoffset,j-yoffset,k-zoffset)))**4
- gxxr = gxxr * psi4r
- gxyr = gxyr * psi4r
- gxzr = gxzr * psi4r
- gyyr = gyyr * psi4r
- gyzr = gyzr * psi4r
- gzzr = gzzr * psi4r
- gxxl = gxxl * psi4l
- gxyl = gxyl * psi4l
- gxzl = gxzl * psi4l
- gyyl = gyyl * psi4l
- gyzl = gyzl * psi4l
- gzzl = gzzl * psi4l
- end if
-
- call SpatialDeterminant(gxxl,gxyl,gxzl,gyyl, gyzl,gzzl,avg_detl)
- call SpatialDeterminant(gxxr,gxyr,gxzr,gyyr, gyzr,gzzr,avg_detr)
+ avg_detl = SPATIAL_DETERMINANT(gxxl,gxyl,gxzl,gyyl, gyzl,gzzl)
+ avg_detr = SPATIAL_DETERMINANT(gxxr,gxyr,gxzr,gyyr, gyzr,gzzr)
call prim2conpolytype(GRHydro_eos_handle, gxxl,gxyl,gxzl,&
gyyl,gyzl,gzzl, &
@@ -437,8 +398,9 @@ subroutine Primitive2ConservativePolyCells(CCTK_ARGUMENTS)
do j = GRHydro_stencil,cctk_lsh(2)-GRHydro_stencil+1
do i = GRHydro_stencil,cctk_lsh(1)-GRHydro_stencil+1
- call SpatialDeterminant(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
- gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),det)
+ det = SPATIAL_DETERMINANT(gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),\
+ gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
+
call prim2conpolytype(GRHydro_eos_handle,gxx(i,j,k),gxy(i,j,k),&
gxz(i,j,k),gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),&
det, dens(i,j,k),sx(i,j,k),sy(i,j,k),sz(i,j,k),&
@@ -494,26 +456,8 @@ subroutine Prim2ConservativeTracer(CCTK_ARGUMENTS)
gyzr = 0.5d0 * (gyz(i,j,k) + gyz(i+xoffset,j+yoffset,k+zoffset))
gzzr = 0.5d0 * (gzz(i,j,k) + gzz(i+xoffset,j+yoffset,k+zoffset))
- if (.not.(conformal_state .eq. 0)) then
- psi4r = (0.5d0*(psi(i,j,k)+psi(i+xoffset,j+yoffset,k+zoffset)))**4
- psi4l = (0.5d0*(psi(i,j,k)+psi(i-xoffset,j-yoffset,k-zoffset)))**4
- gxxr = gxxr * psi4r
- gxyr = gxyr * psi4r
- gxzr = gxzr * psi4r
- gyyr = gyyr * psi4r
- gyzr = gyzr * psi4r
- gzzr = gzzr * psi4r
- gxxl = gxxl * psi4l
- gxyl = gxyl * psi4l
- gxzl = gxzl * psi4l
- gyyl = gyyl * psi4l
- gyzl = gyzl * psi4l
- gzzl = gzzl * psi4l
- end if
-
- call SpatialDeterminant(gxxl,gxyl,gxzl,gyyl, gyzl,gzzl,avg_detl)
- call SpatialDeterminant(gxxr,gxyr,gxzr,gyyr, gyzr,gzzr,avg_detr)
-
+ avg_detl = SPATIAL_DETERMINANT(gxxl,gxyl,gxzl,gyyl, gyzl,gzzl)
+ avg_detr = SPATIAL_DETERMINANT(gxxr,gxyr,gxzr,gyyr, gyzr,gzzr)
cons_tracerplus(i,j,k,:) = tracerplus(i,j,k,:) * &
sqrt(avg_detr) * rhoplus(i,j,k) / &
sqrt(1.d0 - &
@@ -591,25 +535,8 @@ subroutine primitive2conservativegeneral(CCTK_ARGUMENTS)
gyzr = 0.5d0 * (gyz(i,j,k) + gyz(i+xoffset,j+yoffset,k+zoffset))
gzzr = 0.5d0 * (gzz(i,j,k) + gzz(i+xoffset,j+yoffset,k+zoffset))
- if (.not.(conformal_state .eq. 0)) then
- psi4r = (0.5d0*(psi(i,j,k)+psi(i+xoffset,j+yoffset,k+zoffset)))**4
- psi4l = (0.5d0*(psi(i,j,k)+psi(i-xoffset,j-yoffset,k-zoffset)))**4
- gxxr = gxxr * psi4r
- gxyr = gxyr * psi4r
- gxzr = gxzr * psi4r
- gyyr = gyyr * psi4r
- gyzr = gyzr * psi4r
- gzzr = gzzr * psi4r
- gxxl = gxxl * psi4l
- gxyl = gxyl * psi4l
- gxzl = gxzl * psi4l
- gyyl = gyyl * psi4l
- gyzl = gyzl * psi4l
- gzzl = gzzl * psi4l
- end if
-
- call SpatialDeterminant(gxxl,gxyl,gxzl,gyyl, gyzl,gzzl,avg_detl)
- call SpatialDeterminant(gxxr,gxyr,gxzr,gyyr, gyzr,gzzr,avg_detr)
+ avg_detl = SPATIAL_DETERMINANT(gxxl,gxyl,gxzl,gyyl, gyzl,gzzl)
+ avg_detr = SPATIAL_DETERMINANT(gxxr,gxyr,gxzr,gyyr, gyzr,gzzr)
call prim2conpolytype(-1, gxxl,gxyl,gxzl,&
gyyl,gyzl,gzzl, &
@@ -674,17 +601,7 @@ subroutine Primitive2ConservativeCellsGeneral(CCTK_ARGUMENTS)
gyzpt = gyz(i,j,k)
gzzpt = gzz(i,j,k)
- if (.not.(conformal_state .eq. 0)) then
- psi4pt = psi(i,j,k)**4
- gxxpt = gxxpt * psi4pt
- gxypt = gxypt * psi4pt
- gxzpt = gxzpt * psi4pt
- gyypt = gyypt * psi4pt
- gyzpt = gyzpt * psi4pt
- gzzpt = gzzpt * psi4pt
- end if
-
- call SpatialDeterminant(gxxpt,gxypt,gxzpt,gyypt,gyzpt,gzzpt,det)
+ det = SPATIAL_DETERMINANT(gxxpt,gxypt,gxzpt,gyypt,gyzpt,gzzpt)
w_lorentz(i,j,k) = 1.d0 / sqrt(1.d0 - &
(gxxpt * velx(i,j,k)**2 + &
diff --git a/src/GRHydro_Reconstruct.F90 b/src/GRHydro_Reconstruct.F90
index d7af59a..3d4b843 100644
--- a/src/GRHydro_Reconstruct.F90
+++ b/src/GRHydro_Reconstruct.F90
@@ -102,11 +102,7 @@ subroutine Reconstruction(CCTK_ARGUMENTS)
!!$ Currently only option is reconstruction on primitive variables.
!!$ Should change this.
- if (conformal_state .eq. 0) then
- psi4 = 1.d0
- else
- psi4 = psi**4
- end if
+ psi4 = 1.d0
if (shift_state .ne. 0) then
lbetax = betax
lbetay = betay
diff --git a/src/GRHydro_ReconstructPoly.F90 b/src/GRHydro_ReconstructPoly.F90
index 0467c27..26b2acd 100644
--- a/src/GRHydro_ReconstructPoly.F90
+++ b/src/GRHydro_ReconstructPoly.F90
@@ -102,11 +102,7 @@ subroutine ReconstructionPolytype(CCTK_ARGUMENTS)
!!$ Currently only option is reconstruction on primitive variables.
!!$ Should change this.
- if (conformal_state .eq. 0) then
- psi4 = 1.d0
- else
- psi4 = psi**4
- end if
+ psi4 = 1.0d0
if (shift_state .ne. 0) then
lbetax = betax
lbetay = betay
diff --git a/src/GRHydro_RiemannSolve.F90 b/src/GRHydro_RiemannSolve.F90
index 76739a3..dd01bff 100644
--- a/src/GRHydro_RiemannSolve.F90
+++ b/src/GRHydro_RiemannSolve.F90
@@ -11,6 +11,7 @@
#include "cctk_Parameters.h"
#include "cctk_Arguments.h"
#include "cctk_Functions.h"
+#include "GRHydro_Macros.h"
/*@@
@routine RiemannSolve
@@ -251,19 +252,7 @@ subroutine RiemannSolveGeneral(CCTK_ARGUMENTS)
gzzh = 0.5d0 * (gzz(i+xoffset,j+yoffset,k+zoffset) + &
gzz(i,j,k))
- if (conformal_state > 0) then
-
- psi4h = (0.5d0*(psi(i,j,k)+psi(i+xoffset,j+yoffset,k+zoffset)))**4
- gxxh = gxxh * psi4h
- gxyh = gxyh * psi4h
- gxzh = gxzh * psi4h
- gyyh = gyyh * psi4h
- gyzh = gyzh * psi4h
- gzzh = gzzh * psi4h
-
- end if
-
- call SpatialDeterminant(gxxh,gxyh,gxzh,gyyh,gyzh,gzzh,avg_det)
+ avg_det = SPATIAL_DETERMINANT(gxxh,gxyh,gxzh,gyyh,gyzh,gzzh)
if (flux_direction == 1) then
diff --git a/src/GRHydro_RoeSolver.F90 b/src/GRHydro_RoeSolver.F90
index 7d77599..329c081 100644
--- a/src/GRHydro_RoeSolver.F90
+++ b/src/GRHydro_RoeSolver.F90
@@ -11,6 +11,7 @@
#include "cctk_Arguments.h"
#include "cctk_Parameters.h"
#include "cctk_Functions.h"
+#include "GRHydro_Macros.h"
#include "SpaceMask.h"
@@ -138,19 +139,7 @@ subroutine GRHydro_RoeSolve(CCTK_ARGUMENTS)
gzzh = 0.5d0 * (gzz(i+xoffset,j+yoffset,k+zoffset) + &
gzz(i,j,k))
- if (conformal_state > 0) then
-
- psi4h = (0.5d0*(psi(i,j,k)+psi(i+xoffset,j+yoffset,k+zoffset)))**4
- gxxh = gxxh * psi4h
- gxyh = gxyh * psi4h
- gxzh = gxzh * psi4h
- gyyh = gyyh * psi4h
- gyzh = gyzh * psi4h
- gzzh = gzzh * psi4h
-
- end if
-
- call SpatialDeterminant(gxxh,gxyh,gxzh,gyyh,gyzh,gzzh,avg_det)
+ avg_det = SPATIAL_DETERMINANT(gxxh,gxyh,gxzh,gyyh,gyzh,gzzh)
!!$ If the Riemann problem is trivial, just calculate the fluxes from the
!!$ left state and skip to the next cell
@@ -493,20 +482,8 @@ subroutine GRHydro_RoeSolveGeneral(CCTK_ARGUMENTS)
gyz(i,j,k))
gzzh = 0.5d0 * (gzz(i+xoffset,j+yoffset,k+zoffset) + &
gzz(i,j,k))
-
- if (conformal_state > 0) then
-
- psi4h = (0.5d0*(psi(i,j,k)+psi(i+xoffset,j+yoffset,k+zoffset)))**4
- gxxh = gxxh * psi4h
- gxyh = gxyh * psi4h
- gxzh = gxzh * psi4h
- gyyh = gyyh * psi4h
- gyzh = gyzh * psi4h
- gzzh = gzzh * psi4h
-
- end if
- call SpatialDeterminant(gxxh,gxyh,gxzh,gyyh,gyzh,gzzh,avg_det)
+ avg_det = SPATIAL_DETERMINANT(gxxh,gxyh,gxzh,gyyh,gyzh,gzzh)
!!$ If the Riemann problem is trivial the flux is already correct
diff --git a/src/GRHydro_Source.F90 b/src/GRHydro_Source.F90
index b2833a8..e8c00ec 100644
--- a/src/GRHydro_Source.F90
+++ b/src/GRHydro_Source.F90
@@ -25,6 +25,7 @@
#include "cctk.h"
#include "cctk_Parameters.h"
#include "cctk_Arguments.h"
+#include "GRHydro_Macros.h"
#define velx(i,j,k) vel(i,j,k,1)
#define vely(i,j,k) vel(i,j,k,2)
@@ -153,31 +154,15 @@ subroutine SourceTerms(CCTK_ARGUMENTS)
!!$ Set the metric terms.
- if (conformal_state .eq. 0) then
+ localgxx = gxx(i,j,k)
+ localgxy = gxy(i,j,k)
+ localgxz = gxz(i,j,k)
+ localgyy = gyy(i,j,k)
+ localgyz = gyz(i,j,k)
+ localgzz = gzz(i,j,k)
- localgxx = gxx(i,j,k)
- localgxy = gxy(i,j,k)
- localgxz = gxz(i,j,k)
- localgyy = gyy(i,j,k)
- localgyz = gyz(i,j,k)
- localgzz = gzz(i,j,k)
-
- else
-
- psi4pt = psi(i,j,k)**4
-
- localgxx = psi4pt*gxx(i,j,k)
- localgxy = psi4pt*gxy(i,j,k)
- localgxz = psi4pt*gxz(i,j,k)
- localgyy = psi4pt*gyy(i,j,k)
- localgyz = psi4pt*gyz(i,j,k)
- localgzz = psi4pt*gzz(i,j,k)
-
- end if
-
-
- call SpatialDeterminant(localgxx, localgxy, localgxz,&
- localgyy, localgyz, localgzz, det)
+ det = SPATIAL_DETERMINANT(localgxx, localgxy, localgxz,\
+ localgyy, localgyz, localgzz)
sqrtdet = sqrt(det)
call UpperMetric(uxx, uxy, uxz, uyy, uyz, uzz, det, localgxx,&
localgxy, localgxz, localgyy, localgyz, localgzz)
@@ -294,111 +279,50 @@ subroutine SourceTerms(CCTK_ARGUMENTS)
end if
- if (conformal_state .eq. 0) then
-
- if (local_spatial_order .eq. 2) then
-
- dx_gxx = DIFF_X_2(gxx)
- dx_gxy = DIFF_X_2(gxy)
- dx_gxz = DIFF_X_2(gxz)
- dx_gyy = DIFF_X_2(gyy)
- dx_gyz = DIFF_X_2(gyz)
- dx_gzz = DIFF_X_2(gzz)
- dy_gxx = DIFF_Y_2(gxx)
- dy_gxy = DIFF_Y_2(gxy)
- dy_gxz = DIFF_Y_2(gxz)
- dy_gyy = DIFF_Y_2(gyy)
- dy_gyz = DIFF_Y_2(gyz)
- dy_gzz = DIFF_Y_2(gzz)
- dz_gxx = DIFF_Z_2(gxx)
- dz_gxy = DIFF_Z_2(gxy)
- dz_gxz = DIFF_Z_2(gxz)
- dz_gyy = DIFF_Z_2(gyy)
- dz_gyz = DIFF_Z_2(gyz)
- dz_gzz = DIFF_Z_2(gzz)
-
- else
-
- dx_gxx = DIFF_X_4(gxx)
- dx_gxy = DIFF_X_4(gxy)
- dx_gxz = DIFF_X_4(gxz)
- dx_gyy = DIFF_X_4(gyy)
- dx_gyz = DIFF_X_4(gyz)
- dx_gzz = DIFF_X_4(gzz)
- dy_gxx = DIFF_Y_4(gxx)
- dy_gxy = DIFF_Y_4(gxy)
- dy_gxz = DIFF_Y_4(gxz)
- dy_gyy = DIFF_Y_4(gyy)
- dy_gyz = DIFF_Y_4(gyz)
- dy_gzz = DIFF_Y_4(gzz)
- dz_gxx = DIFF_Z_4(gxx)
- dz_gxy = DIFF_Z_4(gxy)
- dz_gxz = DIFF_Z_4(gxz)
- dz_gyy = DIFF_Z_4(gyy)
- dz_gyz = DIFF_Z_4(gyz)
- dz_gzz = DIFF_Z_4(gzz)
-
- end if
-
- else if (conformal_state > 1) then
-
-!!$ Using conformal factor, and the derivatives are
-!!$ already calculated.
-
- psi4pt = psi(i,j,k)**4
- dx_psi4 = 4.d0*psi4pt*psix(i,j,k)
- dy_psi4 = 4.d0*psi4pt*psiy(i,j,k)
- dz_psi4 = 4.d0*psi4pt*psiz(i,j,k)
-
- if (local_spatial_order .eq. 2) then
-
- dx_gxx = DIFF_X_2(gxx)*psi4pt + dx_psi4*gxx(i,j,k)
- dx_gxy = DIFF_X_2(gxy)*psi4pt + dx_psi4*gxy(i,j,k)
- dx_gxz = DIFF_X_2(gxz)*psi4pt + dx_psi4*gxz(i,j,k)
- dx_gyy = DIFF_X_2(gyy)*psi4pt + dx_psi4*gyy(i,j,k)
- dx_gyz = DIFF_X_2(gyz)*psi4pt + dx_psi4*gyz(i,j,k)
- dx_gzz = DIFF_X_2(gzz)*psi4pt + dx_psi4*gzz(i,j,k)
- dy_gxx = DIFF_Y_2(gxx)*psi4pt + dy_psi4*gxx(i,j,k)
- dy_gxy = DIFF_Y_2(gxy)*psi4pt + dy_psi4*gxy(i,j,k)
- dy_gxz = DIFF_Y_2(gxz)*psi4pt + dy_psi4*gxz(i,j,k)
- dy_gyy = DIFF_Y_2(gyy)*psi4pt + dy_psi4*gyy(i,j,k)
- dy_gyz = DIFF_Y_2(gyz)*psi4pt + dy_psi4*gyz(i,j,k)
- dy_gzz = DIFF_Y_2(gzz)*psi4pt + dy_psi4*gzz(i,j,k)
- dz_gxx = DIFF_Z_2(gxx)*psi4pt + dz_psi4*gxx(i,j,k)
- dz_gxy = DIFF_Z_2(gxy)*psi4pt + dz_psi4*gxy(i,j,k)
- dz_gxz = DIFF_Z_2(gxz)*psi4pt + dz_psi4*gxz(i,j,k)
- dz_gyy = DIFF_Z_2(gyy)*psi4pt + dz_psi4*gyy(i,j,k)
- dz_gyz = DIFF_Z_2(gyz)*psi4pt + dz_psi4*gyz(i,j,k)
- dz_gzz = DIFF_Z_2(gzz)*psi4pt + dz_psi4*gzz(i,j,k)
+ if (local_spatial_order .eq. 2) then
- else
+ dx_gxx = DIFF_X_2(gxx)
+ dx_gxy = DIFF_X_2(gxy)
+ dx_gxz = DIFF_X_2(gxz)
+ dx_gyy = DIFF_X_2(gyy)
+ dx_gyz = DIFF_X_2(gyz)
+ dx_gzz = DIFF_X_2(gzz)
+ dy_gxx = DIFF_Y_2(gxx)
+ dy_gxy = DIFF_Y_2(gxy)
+ dy_gxz = DIFF_Y_2(gxz)
+ dy_gyy = DIFF_Y_2(gyy)
+ dy_gyz = DIFF_Y_2(gyz)
+ dy_gzz = DIFF_Y_2(gzz)
+ dz_gxx = DIFF_Z_2(gxx)
+ dz_gxy = DIFF_Z_2(gxy)
+ dz_gxz = DIFF_Z_2(gxz)
+ dz_gyy = DIFF_Z_2(gyy)
+ dz_gyz = DIFF_Z_2(gyz)
+ dz_gzz = DIFF_Z_2(gzz)
+
+ else
- dx_gxx = DIFF_X_4(gxx)*psi4pt + dx_psi4*gxx(i,j,k)
- dx_gxy = DIFF_X_4(gxy)*psi4pt + dx_psi4*gxy(i,j,k)
- dx_gxz = DIFF_X_4(gxz)*psi4pt + dx_psi4*gxz(i,j,k)
- dx_gyy = DIFF_X_4(gyy)*psi4pt + dx_psi4*gyy(i,j,k)
- dx_gyz = DIFF_X_4(gyz)*psi4pt + dx_psi4*gyz(i,j,k)
- dx_gzz = DIFF_X_4(gzz)*psi4pt + dx_psi4*gzz(i,j,k)
- dy_gxx = DIFF_Y_4(gxx)*psi4pt + dy_psi4*gxx(i,j,k)
- dy_gxy = DIFF_Y_4(gxy)*psi4pt + dy_psi4*gxy(i,j,k)
- dy_gxz = DIFF_Y_4(gxz)*psi4pt + dy_psi4*gxz(i,j,k)
- dy_gyy = DIFF_Y_4(gyy)*psi4pt + dy_psi4*gyy(i,j,k)
- dy_gyz = DIFF_Y_4(gyz)*psi4pt + dy_psi4*gyz(i,j,k)
- dy_gzz = DIFF_Y_4(gzz)*psi4pt + dy_psi4*gzz(i,j,k)
- dz_gxx = DIFF_Z_4(gxx)*psi4pt + dz_psi4*gxx(i,j,k)
- dz_gxy = DIFF_Z_4(gxy)*psi4pt + dz_psi4*gxy(i,j,k)
- dz_gxz = DIFF_Z_4(gxz)*psi4pt + dz_psi4*gxz(i,j,k)
- dz_gyy = DIFF_Z_4(gyy)*psi4pt + dz_psi4*gyy(i,j,k)
- dz_gyz = DIFF_Z_4(gyz)*psi4pt + dz_psi4*gyz(i,j,k)
- dz_gzz = DIFF_Z_4(gzz)*psi4pt + dz_psi4*gzz(i,j,k)
+ dx_gxx = DIFF_X_4(gxx)
+ dx_gxy = DIFF_X_4(gxy)
+ dx_gxz = DIFF_X_4(gxz)
+ dx_gyy = DIFF_X_4(gyy)
+ dx_gyz = DIFF_X_4(gyz)
+ dx_gzz = DIFF_X_4(gzz)
+ dy_gxx = DIFF_Y_4(gxx)
+ dy_gxy = DIFF_Y_4(gxy)
+ dy_gxz = DIFF_Y_4(gxz)
+ dy_gyy = DIFF_Y_4(gyy)
+ dy_gyz = DIFF_Y_4(gyz)
+ dy_gzz = DIFF_Y_4(gzz)
+ dz_gxx = DIFF_Z_4(gxx)
+ dz_gxy = DIFF_Z_4(gxy)
+ dz_gxz = DIFF_Z_4(gxz)
+ dz_gyy = DIFF_Z_4(gyy)
+ dz_gyz = DIFF_Z_4(gyz)
+ dz_gzz = DIFF_Z_4(gzz)
- end if
-
- else
-!!$ Have to finite difference the conformal factor
- call CCTK_WARN(0,"At this point in the source terms we should be differencing the conformal factor. Ian has been too lazy to put this bit of code in yet.")
end if
-
+
!!$ Contract the shift with the extrinsic curvature
shiftshiftk = shiftx*shiftx*kxx(i,j,k) + &
diff --git a/src/GRHydro_Tmunu.F90 b/src/GRHydro_Tmunu.F90
index 6ba34e3..7939a07 100644
--- a/src/GRHydro_Tmunu.F90
+++ b/src/GRHydro_Tmunu.F90
@@ -86,32 +86,20 @@
do j = 1, cctk_lsh(2)
do i = 1, cctk_lsh(1)
- if (conformal_state .eq. 0) then
- velxlow = gxx(i,j,k)*velx(i,j,k) + gxy(i,j,k)*vely(i,j,k) + gxz(i,j,k)*velz(i,j,k)
- velylow = gxy(i,j,k)*velx(i,j,k) + gyy(i,j,k)*vely(i,j,k) + gyz(i,j,k)*velz(i,j,k)
- velzlow = gxz(i,j,k)*velx(i,j,k) + gyz(i,j,k)*vely(i,j,k) + gzz(i,j,k)*velz(i,j,k)
- else
- velxlow = psi(i,j,k)**4 * (gxx(i,j,k)*velx(i,j,k) + gxy(i,j,k)*vely(i,j,k) + gxz(i,j,k)*velz(i,j,k) )
- velylow = psi(i,j,k)**4 * (gxy(i,j,k)*velx(i,j,k) + gyy(i,j,k)*vely(i,j,k) + gyz(i,j,k)*velz(i,j,k) )
- velzlow = psi(i,j,k)**4 * (gxz(i,j,k)*velx(i,j,k) + gyz(i,j,k)*vely(i,j,k) + gzz(i,j,k)*velz(i,j,k) )
- end if
+ velxlow = gxx(i,j,k)*velx(i,j,k) + gxy(i,j,k)*vely(i,j,k) + gxz(i,j,k)*velz(i,j,k)
+ velylow = gxy(i,j,k)*velx(i,j,k) + gyy(i,j,k)*vely(i,j,k) + gyz(i,j,k)*velz(i,j,k)
+ velzlow = gxz(i,j,k)*velx(i,j,k) + gyz(i,j,k)*vely(i,j,k) + gzz(i,j,k)*velz(i,j,k)
!!$ Calculate lower components and square of shift vector.
if (shift_state .ne. 0) then
- if (conformal_state .eq. 0) then
- betaxlow = gxx(i,j,k)*betax(i,j,k) + gxy(i,j,k)*betay(i,j,k) + gxz(i,j,k)*betaz(i,j,k)
- betaylow = gxy(i,j,k)*betax(i,j,k) + gyy(i,j,k)*betay(i,j,k) + gyz(i,j,k)*betaz(i,j,k)
- betazlow = gxz(i,j,k)*betax(i,j,k) + gyz(i,j,k)*betay(i,j,k) + gzz(i,j,k)*betaz(i,j,k)
- else
- betaxlow = psi(i,j,k)**4 * (gxx(i,j,k)*betax(i,j,k) + gxy(i,j,k)*betay(i,j,k) + gxz(i,j,k)*betaz(i,j,k) )
- betaylow = psi(i,j,k)**4 * (gxy(i,j,k)*betax(i,j,k) + gyy(i,j,k)*betay(i,j,k) + gyz(i,j,k)*betaz(i,j,k) )
- betazlow = psi(i,j,k)**4 * (gxz(i,j,k)*betax(i,j,k) + gyz(i,j,k)*betay(i,j,k) + gzz(i,j,k)*betaz(i,j,k) )
- end if
-
- beta2 = betax(i,j,k)*betaxlow + betay(i,j,k)*betaylow + betaz(i,j,k)*betazlow
+ betaxlow = gxx(i,j,k)*betax(i,j,k) + gxy(i,j,k)*betay(i,j,k) + gxz(i,j,k)*betaz(i,j,k)
+ betaylow = gxy(i,j,k)*betax(i,j,k) + gyy(i,j,k)*betay(i,j,k) + gyz(i,j,k)*betaz(i,j,k)
+ betazlow = gxz(i,j,k)*betax(i,j,k) + gyz(i,j,k)*betay(i,j,k) + gzz(i,j,k)*betaz(i,j,k)
+ beta2 = betax(i,j,k)*betaxlow + betay(i,j,k)*betaylow + betaz(i,j,k)*betazlow
+
else
betaxlow = 0.0D0
@@ -143,27 +131,13 @@
eTty(i,j,k) = eTty(i,j,k) + rhoenthalpy*utlow*uylow + press(i,j,k)*betaylow
eTtz(i,j,k) = eTtz(i,j,k) + rhoenthalpy*utlow*uzlow + press(i,j,k)*betazlow
- if (conformal_state .eq. 0) then
-
- eTxx(i,j,k) = eTxx(i,j,k) + rhoenthalpy*uxlow**2 + press(i,j,k)*gxx(i,j,k)
- eTyy(i,j,k) = eTyy(i,j,k) + rhoenthalpy*uylow**2 + press(i,j,k)*gyy(i,j,k)
- eTzz(i,j,k) = eTzz(i,j,k) + rhoenthalpy*uzlow**2 + press(i,j,k)*gzz(i,j,k)
-
- eTxy(i,j,k) = eTxy(i,j,k) + rhoenthalpy*uxlow*uylow + press(i,j,k)*gxy(i,j,k)
- eTxz(i,j,k) = eTxz(i,j,k) + rhoenthalpy*uxlow*uzlow + press(i,j,k)*gxz(i,j,k)
- eTyz(i,j,k) = eTyz(i,j,k) + rhoenthalpy*uylow*uzlow + press(i,j,k)*gyz(i,j,k)
-
- else
-
- eTxx(i,j,k) = eTxx(i,j,k) + rhoenthalpy*uxlow**2 + psi(i,j,k)**4 * press(i,j,k)*gxx(i,j,k)
- eTyy(i,j,k) = eTyy(i,j,k) + rhoenthalpy*uylow**2 + psi(i,j,k)**4 * press(i,j,k)*gyy(i,j,k)
- eTzz(i,j,k) = eTzz(i,j,k) + rhoenthalpy*uzlow**2 + psi(i,j,k)**4 * press(i,j,k)*gzz(i,j,k)
-
- eTxy(i,j,k) = eTxy(i,j,k) + rhoenthalpy*uxlow*uylow + psi(i,j,k)**4 * press(i,j,k)*gxy(i,j,k)
- eTxz(i,j,k) = eTxz(i,j,k) + rhoenthalpy*uxlow*uzlow + psi(i,j,k)**4 * press(i,j,k)*gxz(i,j,k)
- eTyz(i,j,k) = eTyz(i,j,k) + rhoenthalpy*uylow*uzlow + psi(i,j,k)**4 * press(i,j,k)*gyz(i,j,k)
-
- end if
+ eTxx(i,j,k) = eTxx(i,j,k) + rhoenthalpy*uxlow**2 + press(i,j,k)*gxx(i,j,k)
+ eTyy(i,j,k) = eTyy(i,j,k) + rhoenthalpy*uylow**2 + press(i,j,k)*gyy(i,j,k)
+ eTzz(i,j,k) = eTzz(i,j,k) + rhoenthalpy*uzlow**2 + press(i,j,k)*gzz(i,j,k)
+
+ eTxy(i,j,k) = eTxy(i,j,k) + rhoenthalpy*uxlow*uylow + press(i,j,k)*gxy(i,j,k)
+ eTxz(i,j,k) = eTxz(i,j,k) + rhoenthalpy*uxlow*uzlow + press(i,j,k)*gxz(i,j,k)
+ eTyz(i,j,k) = eTyz(i,j,k) + rhoenthalpy*uylow*uzlow + press(i,j,k)*gyz(i,j,k)
end do
end do
diff --git a/src/GRHydro_UpdateMask.F90 b/src/GRHydro_UpdateMask.F90
index 3753797..d7cdff0 100644
--- a/src/GRHydro_UpdateMask.F90
+++ b/src/GRHydro_UpdateMask.F90
@@ -11,6 +11,7 @@
#include "cctk_Parameters.h"
#include "cctk_Arguments.h"
+#include "GRHydro_Macros.h"
#include "SpaceMask.h"
#define velx(i,j,k) vel(i,j,k,1)
@@ -209,27 +210,14 @@ subroutine GRHydro_AtmosphereReset(CCTK_ARGUMENTS)
velx(i,j,k) = 0.0d0
vely(i,j,k) = 0.0d0
velz(i,j,k) = 0.0d0
- if (conformal_state .eq. 0) then
- call SpatialDeterminant(gxx(i,j,k), gxy(i,j,k), gxz(i,j,k), &
- gyy(i,j,k), gyz(i,j,k), gzz(i,j,k), det)
- call prim2conpolytype(GRHydro_polytrope_handle, &
- gxx(i,j,k), gxy(i,j,k), gxz(i,j,k), &
- gyy(i,j,k), gyz(i,j,k), gzz(i,j,k), det, &
- dens(i,j,k), scon(i,j,k,1), scon(i,j,k,2), scon(i,j,k,3), &
- 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))
- else
- psi4pt = psi(i,j,k)**4
- call SpatialDeterminant(psi4pt*gxx(i,j,k), psi4pt*gxy(i,j,k), &
- psi4pt*gxz(i,j,k), psi4pt*gyy(i,j,k), psi4pt*gyz(i,j,k), &
- psi4pt*gzz(i,j,k), det)
- call prim2conpolytype(GRHydro_polytrope_handle, &
- psi4pt*gxx(i,j,k), psi4pt*gxy(i,j,k), psi4pt*gxz(i,j,k), &
- psi4pt*gyy(i,j,k), psi4pt*gyz(i,j,k), psi4pt*gzz(i,j,k), &
- det, dens(i,j,k), scon(i,j,k,1), scon(i,j,k,2), scon(i,j,k,3), &
- 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 if
+ det = SPATIAL_DETERMINANT(gxx(i,j,k), gxy(i,j,k), gxz(i,j,k), \
+ gyy(i,j,k), gyz(i,j,k), gzz(i,j,k))
+ call prim2conpolytype(GRHydro_polytrope_handle, &
+ gxx(i,j,k), gxy(i,j,k), gxz(i,j,k), &
+ gyy(i,j,k), gyz(i,j,k), gzz(i,j,k), det, &
+ dens(i,j,k), scon(i,j,k,1), scon(i,j,k,2), scon(i,j,k,3), &
+ 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))
if (wk_atmosphere .eq. 0) then
atmosphere_mask(i, j, k) = 0
SpaceMask_SetStateBitsF90(space_mask, i, j, k, type_bits,\
diff --git a/src/Utils.F90 b/src/Utils.F90
index 440c945..0ef9af2 100644
--- a/src/Utils.F90
+++ b/src/Utils.F90
@@ -11,6 +11,7 @@
#include "cctk.h"
#include "cctk_Parameters.h"
#include "cctk_Arguments.h"
+#include "GRHydro_Macros.h"
/*@@
@routine GRHydro_RefinementLevel
@@ -42,6 +43,7 @@ end subroutine GRHydro_RefinementLevel
@author
@desc
Calculates the determinant of the spatial metric.
+ PLEASE USE THE MACRO SPATIAL_DETERMINANT from now on!!!
@enddesc
@calls
@calledby
@@ -59,7 +61,7 @@ subroutine SpatialDeterminant(gxx,gxy,gxz,gyy,gyz,gzz,det)
det = -gxz**2*gyy + 2*gxy*gxz*gyz - gxx*gyz**2 - gxy**2*gzz + gxx*gyy*gzz
-
+
!!$ Why is this weird order necessary? Search me. It just seemed
!!$ to make a really odd NaN go away.
@@ -142,30 +144,14 @@ subroutine SetMetricTemps(CCTK_ARGUMENTS)
do j = 1, ny
do i = 1, nx
- if (conformal_state .eq. 0) then
- call SpatialDeterminant(&
- gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
- gyy(i,j,k),gyz(i,j,k),gzz(i,j,k),&
- GRHydro_det(i,j,k))
- call UpperMetric(&
- GRHydro_uxx(i,j,k),GRHydro_uxy(i,j,k),GRHydro_uxz(i,j,k),&
- GRHydro_uyy(i,j,k),GRHydro_uyz(i,j,k),GRHydro_uzz(i,j,k),&
- GRHydro_det(i,j,k),&
- gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
- gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
- else
- psi4pt = psi(i,j,k)**4
- call SpatialDeterminant(&
- psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),psi4pt*gxz(i,j,k),&
- psi4pt*gyy(i,j,k),psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k),&
- GRHydro_det(i,j,k))
- call UpperMetric(&
- GRHydro_uxx(i,j,k),GRHydro_uxy(i,j,k),GRHydro_uxz(i,j,k),&
- GRHydro_uyy(i,j,k),GRHydro_uyz(i,j,k),GRHydro_uzz(i,j,k),&
- GRHydro_det(i,j,k),&
- psi4pt*gxx(i,j,k),psi4pt*gxy(i,j,k),psi4pt*gxz(i,j,k),&
- psi4pt*gyy(i,j,k),psi4pt*gyz(i,j,k),psi4pt*gzz(i,j,k))
- end if
+ GRHydro_det(i,j,k) = SPATIAL_DETERMINANT(gxx(i,j,k),gxy(i,j,k),\
+ gxz(i,j,k), gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
+ call UpperMetric(&
+ GRHydro_uxx(i,j,k),GRHydro_uxy(i,j,k),GRHydro_uxz(i,j,k),&
+ GRHydro_uyy(i,j,k),GRHydro_uyz(i,j,k),GRHydro_uzz(i,j,k),&
+ GRHydro_det(i,j,k),&
+ gxx(i,j,k),gxy(i,j,k),gxz(i,j,k),&
+ gyy(i,j,k),gyz(i,j,k),gzz(i,j,k))
end do
end do