[Commits] [svn:einsteintoolkit] GRHydro/trunk/ (Rev. 270)
roland.haas at physics.gatech.edu
roland.haas at physics.gatech.edu
Thu Sep 15 11:46:26 CDT 2011
User: rhaas
Date: 2011/09/15 11:46 AM
Modified:
/trunk/
param.ccl
/trunk/src/
GRHydro_Con2Prim.F90
Log:
* improve behavior of CoreCollapseControl upon recovery
* improve handling of too-low temperatures in GRHydro
File Changes:
Directory: /trunk/src/
======================
File [modified]: GRHydro_Con2Prim.F90
Delta lines: +43 -6
===================================================================
--- trunk/src/GRHydro_Con2Prim.F90 2011-09-15 16:45:26 UTC (rev 269)
+++ trunk/src/GRHydro_Con2Prim.F90 2011-09-15 16:46:26 UTC (rev 270)
@@ -628,8 +628,8 @@
call CCTK_WARN(failinfomode,warnline)
write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
call CCTK_WARN(failinfomode,warnline)
- if(nf.gt.nfudgemax) then
- call CCTK_WARN(failinfomode,"EOS error in c2p 0a: injected heat too many times")
+ if(nf.gt.nfudgemax.and.GRHydro_c2p_reset_eps_tau_hot_eos.ne.1) then
+ call CCTK_WARN(failinfomode,"EOS error in c2p 1: injected heat too many times")
write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
call CCTK_WARN(failinfomode,warnline)
write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
@@ -639,6 +639,19 @@
write(warnline,"(A10,i5)") "reflevel: ", GRHydro_reflevel
call CCTK_WARN(failinfomode,warnline)
call CCTK_WARN(failwarnmode,"Aborting!!!")
+ else
+ call CCTK_WARN(failinfomode,"EOS error in c2p 1: LAST RESORT -- reset eps and tau based on old temp")
+ write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
+ call CCTK_WARN(failinfomode,warnline)
+ write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
+ call CCTK_WARN(failinfomode,warnline)
+ keytemp = 1
+ call EOS_Omni_press(handle,keytemp,GRHydro_eos_rf_prec,n,&
+ rho,epsilon,temp,ye,xpress,keyerr,anyerr)
+ tau = ( (rho + rho*epsilon) + xpress ) * w_lorentz**2 - xpress - rho*w_lorentz
+ write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
+ call CCTK_WARN(failinfomode,warnline)
+ keytemp = 0
endif
else
call CCTK_WARN(failinfomode,"EOS error in c2p 0")
@@ -706,7 +719,7 @@
call CCTK_WARN(failinfomode,warnline)
write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
call CCTK_WARN(failinfomode,warnline)
- if(nf.gt.nfudgemax) then
+ if(nf.gt.nfudgemax.and.GRHydro_c2p_reset_eps_tau_hot_eos.ne.1) then
call CCTK_WARN(failinfomode,"EOS error in c2p 1: injected heat too many times")
write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
call CCTK_WARN(failinfomode,warnline)
@@ -717,6 +730,19 @@
write(warnline,"(A10,i5)") "reflevel: ", GRHydro_reflevel
call CCTK_WARN(failinfomode,warnline)
call CCTK_WARN(failwarnmode,"Aborting!!!")
+ else
+ call CCTK_WARN(failinfomode,"EOS error in c2p 1: LAST RESORT -- reset eps and tau based on old temp")
+ write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
+ call CCTK_WARN(failinfomode,warnline)
+ write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
+ call CCTK_WARN(failinfomode,warnline)
+ keytemp = 1
+ call EOS_Omni_press(handle,keytemp,GRHydro_eos_rf_prec,n,&
+ rho,epsilon,temp,ye,xpress,keyerr,anyerr)
+ tau = ( (rho + rho*epsilon) + xpress ) * w_lorentz**2 - xpress - rho*w_lorentz
+ write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
+ call CCTK_WARN(failinfomode,warnline)
+ keytemp = 0
endif
else
call CCTK_WARN(failinfomode,"EOS error in c2p 1")
@@ -789,8 +815,6 @@
! found for a given epsilon. The amount of times
! we get to this place should be monitored, as this
! 'failsafe' mode creates artificial heat.
- write(warnline,"(4i5,1P10E15.6)") GRHydro_reflevel,ii,jj,kk,x,y,z
- call CCTK_WARN(0,warnline)
nf = 0
do while(anyerr.ne.0.and.nf.le.nfudgemax)
anyerr = 0
@@ -804,7 +828,7 @@
call CCTK_WARN(failinfomode,warnline)
write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
call CCTK_WARN(failinfomode,warnline)
- if(nf.gt.nfudgemax) then
+ if(nf.gt.nfudgemax.and.GRHydro_c2p_reset_eps_tau_hot_eos.ne.1) then
call CCTK_WARN(failinfomode,"EOS error in c2p 1: injected heat too many times")
write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
call CCTK_WARN(failinfomode,warnline)
@@ -815,6 +839,19 @@
write(warnline,"(A10,i5)") "reflevel: ", GRHydro_reflevel
call CCTK_WARN(failinfomode,warnline)
call CCTK_WARN(failwarnmode,"Aborting!!!")
+ else
+ call CCTK_WARN(failinfomode,"EOS error in c2p 1: LAST RESORT -- reset eps and tau based on old temp")
+ write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
+ call CCTK_WARN(failinfomode,warnline)
+ write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
+ call CCTK_WARN(failinfomode,warnline)
+ keytemp = 1
+ call EOS_Omni_press(handle,keytemp,GRHydro_eos_rf_prec,n,&
+ rho,epsilon,temp,ye,xpress,keyerr,anyerr)
+ tau = ( (rho + rho*epsilon) + xpress ) * w_lorentz**2 - xpress - rho*w_lorentz
+ write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
+ call CCTK_WARN(failinfomode,warnline)
+ keytemp = 0
endif
else
call CCTK_WARN(failinfomode,"EOS error in c2p 2")
Directory: /trunk/
==================
File [modified]: param.ccl
Delta lines: +4 -0
===================================================================
--- trunk/param.ccl 2011-09-15 16:45:26 UTC (rev 269)
+++ trunk/param.ccl 2011-09-15 16:46:26 UTC (rev 270)
@@ -267,6 +267,10 @@
boolean GRHydro_eos_hot_eps_fix "Activate quasi-failsafe mode for hot EOSs" STEERABLE=ALWAYS
{
} "no"
+
+boolean GRHydro_c2p_reset_eps_tau_hot_eos "As a last resort, reset tau" STEERABLE=ALWAYS
+{
+} "no"
REAL GRHydro_hot_atmo_temp "Temperature of the hot atmosphere in MeV" STEERABLE=ALWAYS
{
More information about the Commits
mailing list