aboutsummaryrefslogtreecommitdiff
path: root/src/GRHydro_Con2PrimM.F90
diff options
context:
space:
mode:
authorrhaas <rhaas@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45>2013-03-28 01:47:14 +0000
committerrhaas <rhaas@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45>2013-03-28 01:47:14 +0000
commitd14686b8cb54a26334a7a66a05f5d7910203e966 (patch)
tree0b2bfb0696b64d52b1b4fd1c9c435d6d402ce57a /src/GRHydro_Con2PrimM.F90
parent7d408b4489def3a4024b9e0adbba9d9832876950 (diff)
Finish the implementation of con2prim using the entropy equation.
* Tested successfully pointwisely. It still needs to be tested on evolution. From: Bruno Coutinho Mundim <bcmsma@astro.rit.edu> git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinEvolve/GRHydro/trunk@500 c83d129a-5a75-4d5a-9c4d-ed3a5855bf45
Diffstat (limited to 'src/GRHydro_Con2PrimM.F90')
-rw-r--r--src/GRHydro_Con2PrimM.F9044
1 files changed, 34 insertions, 10 deletions
diff --git a/src/GRHydro_Con2PrimM.F90 b/src/GRHydro_Con2PrimM.F90
index d59cc9c..0960b0d 100644
--- a/src/GRHydro_Con2PrimM.F90
+++ b/src/GRHydro_Con2PrimM.F90
@@ -334,7 +334,11 @@ subroutine Conservative2PrimitiveM(CCTK_ARGUMENTS)
Bvecz_tmp = Bprim(i,j,k,3)
keytemp = 0
-
+ !Watch out for the values returned to b2. Here b2 is the Bprim^2
+ !while inside the point-wise con2prim routines it is the square
+ !of the comoving B-field, b^{\mu} b_{\mu}. It is overwritten
+ !in this routine, but we may need to find a better notation
+ !avoid future confusions.
call GRHydro_Con2PrimM_pt(GRHydro_eos_handle, keytemp, &
GRHydro_eos_rf_prec, local_gam(1), dens(i,j,k), &
scon(i,j,k,1),scon(i,j,k,2),scon(i,j,k,3), tau(i,j,k), &
@@ -347,7 +351,13 @@ subroutine Conservative2PrimitiveM(CCTK_ARGUMENTS)
epsnegative,GRHydro_C2P_failed(i,j,k))
if(evolve_entropy.ne.0) then
- entropy(i,j,k) = entropycons(i,j,k)/dens(i,j,k)*rho(i,j,k)
+ if(GRHydro_C2P_failed(i,j,k).ne.0) then
+ !Use previous time step for rho:
+ entropy(i,j,k) = entropycons(i,j,k)/dens(i,j,k)*rho(i,j,k)
+ else
+ !Use the current correct value of rho returned by con2prim:
+ entropy(i,j,k) = entropycons(i,j,k)/dens(i,j,k)*rho_tmp
+ endif
endif
if(GRHydro_C2P_failed(i,j,k).ne.0) then
@@ -430,14 +440,28 @@ subroutine Conservative2PrimitiveM(CCTK_ARGUMENTS)
Bvecy_tmp = Bprim(i,j,k,2)
Bvecz_tmp = Bprim(i,j,k,3)
- call GRHydro_Con2PrimM_Polytype_pt(GRHydro_eos_handle, local_pgam, &
- dens(i,j,k),scon(i,j,k,1),scon(i,j,k,2),scon(i,j,k,3), sc, &
- Bcons(i,j,k,1), Bcons(i,j,k,2), Bcons(i,j,k,3),rho_tmp,&
- velx_tmp,vely_tmp,velz_tmp,eps_tmp,press_tmp,&
- Bvecx_tmp,Bvecy_tmp,Bvecz_tmp,b2,w_lorentz_tmp,&
- g11(i,j,k),g12(i,j,k),g13(i,j,k),g22(i,j,k),g23(i,j,k),g33(i,j,k), &
- uxx,uxy,uxz,uyy,uyz,uzz,det, &
- epsnegative,GRHydro_C2P_failed(i,j,k))
+ if(evolve_entropy.ne.0) then
+ call GRHydro_Con2PrimM_ptee(GRHydro_eos_handle, keytemp, &
+ GRHydro_eos_rf_prec, local_gam(1), dens(i,j,k), &
+ scon(i,j,k,1),scon(i,j,k,2),scon(i,j,k,3), tau(i,j,k), &
+ Bcons(i,j,k,1),Bcons(i,j,k,2),Bcons(i,j,k,3), &
+ entropycons(i,j,k), xye(1), &
+ xtemp(1),rho_tmp,velx_tmp,vely_tmp,velz_tmp,&
+ eps_tmp,press_tmp,Bvecx_tmp,Bvecy_tmp,Bvecz_tmp,b2,&
+ w_lorentz_tmp,g11(i,j,k),g12(i,j,k),g13(i,j,k),&
+ g22(i,j,k),g23(i,j,k),g33(i,j,k), &
+ uxx,uxy,uxz,uyy,uyz,uzz,det, &
+ epsnegative,GRHydro_C2P_failed(i,j,k))
+ else
+ call GRHydro_Con2PrimM_Polytype_pt(GRHydro_eos_handle, local_pgam, &
+ dens(i,j,k),scon(i,j,k,1),scon(i,j,k,2),scon(i,j,k,3), sc, &
+ Bcons(i,j,k,1), Bcons(i,j,k,2), Bcons(i,j,k,3),rho_tmp,&
+ velx_tmp,vely_tmp,velz_tmp,eps_tmp,press_tmp,&
+ Bvecx_tmp,Bvecy_tmp,Bvecz_tmp,b2,w_lorentz_tmp,&
+ g11(i,j,k),g12(i,j,k),g13(i,j,k),g22(i,j,k),g23(i,j,k),g33(i,j,k), &
+ uxx,uxy,uxz,uyy,uyz,uzz,det, &
+ epsnegative,GRHydro_C2P_failed(i,j,k))
+ end if
rho(i,j,k) = rho_tmp
press(i,j,k) = press_tmp