[Commits] [svn:einsteintoolkit] GRHydro/branches/hot_and_MHD_temp_dev/ (Rev. 178)
cott at tapir.caltech.edu
cott at tapir.caltech.edu
Wed Nov 17 17:07:09 CST 2010
User: cott
Date: 2010/11/17 05:07 PM
Modified:
/branches/hot_and_MHD_temp_dev/
param.ccl, schedule.ccl
/branches/hot_and_MHD_temp_dev/src/
GRHydro_Boundaries.F90, GRHydro_Con2Prim.F90, GRHydro_ParamCheck.F90, Utils.F90
Log:
* better error handling in c2p: implement a temporary
hack to deal with boundary zones in octant symmetry;
this will be removed once we have a sensible Carpet mask.
* fix boundary issues concerning temperature and entropy
File Changes:
Directory: /branches/hot_and_MHD_temp_dev/
==========================================
File [modified]: param.ccl
Delta lines: +6 -0
===================================================================
--- branches/hot_and_MHD_temp_dev/param.ccl 2010-11-16 22:44:45 UTC (rev 177)
+++ branches/hot_and_MHD_temp_dev/param.ccl 2010-11-17 23:07:08 UTC (rev 178)
@@ -545,3 +545,9 @@
{
0:* :: "Any value, but one to 12 is preferred"
} 1.0
+
+############### temporary parameters to be removed once connected issues are fixed.
+
+boolean con2prim_oct_hack "Disregard c2p failures in oct/rotsym90 boundary cells with xyz < 0" STEERABLE=ALWAYS
+{
+} "no"
File [modified]: schedule.ccl
Delta lines: +4 -19
===================================================================
--- branches/hot_and_MHD_temp_dev/schedule.ccl 2010-11-16 22:44:45 UTC (rev 177)
+++ branches/hot_and_MHD_temp_dev/schedule.ccl 2010-11-17 23:07:08 UTC (rev 178)
@@ -878,15 +878,10 @@
} "Calculate current refinement level"
#debug
-### schedule GRHydro_Debug IN MoL_PostRHS AFTER dissipation_add
-### {
-### LANG: Fortran
-### } "debug"
-###
-### schedule GRHydro_Debug AS guender IN MoL_Step AFTER MoL_Add
-### {
-### LANG: Fortran
-### } "debug"
+###schedule GRHydro_Debug IN ZelmaniLeakChangeYe BEFORE ZelmaniLeak_ye_of_rho
+###{
+### LANG: Fortran
+###} "debug"
schedule GRHydro_RefinementLevel AT CCTK_PostStep
{
@@ -1286,13 +1281,3 @@
{
} "Calculate the stress-energy tensor"
-
-###schedule GRH_debug in CCTK_POSTPOSTINITIAL
-###{
-### LANG: Fortran
-###} "Do some debugging"
-###
-###schedule GRH_debug in MoL_Step AFTER MoL_InitRHS BEFORE MoL_CalcRHS
-###{
-### LANG: Fortran
-###} "Do some debugging"
Directory: /branches/hot_and_MHD_temp_dev/src/
==============================================
File [modified]: GRHydro_Boundaries.F90
Delta lines: +22 -3
===================================================================
--- branches/hot_and_MHD_temp_dev/src/GRHydro_Boundaries.F90 2010-11-16 22:44:45 UTC (rev 177)
+++ branches/hot_and_MHD_temp_dev/src/GRHydro_Boundaries.F90 2010-11-17 23:07:08 UTC (rev 178)
@@ -47,7 +47,7 @@
DECLARE_CCTK_FUNCTIONS
integer, dimension(3) :: sym
- integer :: ierr
+ integer :: ierr = 0
integer :: itracer
character(len=100) tracername
@@ -76,6 +76,10 @@
call SetCartSymGN(ierr, cctkGH, sym, "GRHydro::Y_e_con")
endif
+ if(evolve_temper.ne.0) then
+ call SetCartSymGN(ierr, cctkGH, sym, "HydroBase::temperature")
+ call SetCartSymGN(ierr, cctkGH, sym, "HydroBase::entropy")
+ endif
sym(1) = -1
sym(2) = 1
@@ -160,13 +164,21 @@
"GRHydro::GRHydro_cons_tracers", "Flat")
endif
- if(CCTK_EQUALS(Y_e_evolution_method,"GRHydro")) then
+ if(evolve_y_e) then
ierr = Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
"HydroBase::Y_e", "Flat")
ierr = Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
"GRHydro::Y_e_con", "Flat")
endif
+ if(evolve_temper) then
+ ierr = Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "HydroBase::temperature", "Flat")
+ ierr = Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "HydroBase::entropy", "Flat")
+ endif
+
+
endif
if (CCTK_EQUALS(bound,"none")) then
@@ -194,13 +206,20 @@
"GRHydro::GRHydro_cons_tracers", "None")
endif
- if(CCTK_EQUALS(Y_e_evolution_method,"GRHydro")) then
+ if(evolve_y_e) then
ierr = Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
"HydroBase::Y_e", "None")
ierr = Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
"GRHydro::Y_e_con", "None")
endif
+ if(evolve_temper) then
+ ierr = Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "HydroBase::temperature", "None")
+ ierr = Boundary_SelectGroupForBC(cctkGH, faces, GRHydro_stencil, -ione, &
+ "HydroBase::entropy", "None")
+ endif
+
end if
if (CCTK_EQUALS(bound,"scalar")) then
File [modified]: GRHydro_Con2Prim.F90
Delta lines: +45 -31
===================================================================
--- branches/hot_and_MHD_temp_dev/src/GRHydro_Con2Prim.F90 2010-11-16 22:44:45 UTC (rev 177)
+++ branches/hot_and_MHD_temp_dev/src/GRHydro_Con2Prim.F90 2010-11-17 23:07:08 UTC (rev 178)
@@ -493,17 +493,30 @@
character(len=200) warnline
logical epsnegative
+ integer :: failwarnmode = 0
+ integer :: failinfomode = 1
+
! begin EOS Omni vars
integer :: n = 1
integer :: keytemp = 0
integer :: anyerr = 0
integer :: keyerr(1) = 0
real*8 :: xpress = 0.0d0
+ real*8 :: temp0 = 0.0d0
! end EOS Omni vars
! set pmin and epsmin to something sensible:
pmin = 1.0d-28
epsmin = 1.0e-5
+
+
+ if(con2prim_oct_hack.ne.0.and.&
+ x .lt. 0.0d0 .or.&
+ y .lt. 0.0d0 .or.&
+ z .lt. 0.0d0) then
+ failwarnmode = 2
+ failinfomode = 2
+ endif
!!$ Undensitize the variables
@@ -516,21 +529,22 @@
2.*usx*usz*uxz + 2.*usy*usz*uyz
!!$ Set initial guess for pressure:
+ temp0 = temp
call EOS_Omni_press(handle,keytemp,GRHydro_eos_rf_prec,n,&
rho,epsilon,temp,ye,xpress,keyerr,anyerr)
pold = max(1.d-15,xpress)
! error handling
if(anyerr.ne.0) then
- call CCTK_WARN(1,"EOS error in c2p 0")
+ call CCTK_WARN(failinfomode,"EOS error in c2p 0")
write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
- call CCTK_WARN(1,warnline)
- write(warnline,"(1P10E15.6)") rho,dens,epsilon,temp,ye
- call CCTK_WARN(1,warnline)
+ call CCTK_WARN(failinfomode,warnline)
+ write(warnline,"(1P10E15.6)") rho,dens,epsilon,temp,temp0,ye
+ call CCTK_WARN(failinfomode,warnline)
write(warnline,"(A7,i8)") "code: ",keyerr(1)
- call CCTK_WARN(1,warnline)
+ call CCTK_WARN(failinfomode,warnline)
write(warnline,"(A10,i5)") "reflevel: ", GRHydro_reflevel
- call CCTK_WARN(1,warnline)
- call CCTK_WARN(0,"Aborting!!!")
+ call CCTK_WARN(failinfomode,warnline)
+ call CCTK_WARN(failwarnmode,"Aborting!!!")
endif
@@ -564,16 +578,16 @@
rho,epsilon,temp,ye,xpress,keyerr,anyerr)
! error handling
if(anyerr.ne.0) then
- call CCTK_WARN(1,"EOS error in c2p 1")
+ call CCTK_WARN(failinfomode,"EOS error in c2p 1")
write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
- call CCTK_WARN(1,warnline)
+ call CCTK_WARN(failinfomode,warnline)
write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
- call CCTK_WARN(1,warnline)
+ call CCTK_WARN(failinfomode,warnline)
write(warnline,"(A7,i8)") "code: ",keyerr(1)
- call CCTK_WARN(1,warnline)
+ call CCTK_WARN(failinfomode,warnline)
write(warnline,"(A10,i5)") "reflevel: ", GRHydro_reflevel
- call CCTK_WARN(1,warnline)
- call CCTK_WARN(0,"Aborting!!!")
+ call CCTK_WARN(failinfomode,warnline)
+ call CCTK_WARN(failwarnmode,"Aborting!!!")
endif
f = pold - xpress
@@ -592,16 +606,16 @@
GRHydro_C2P_failed = 1
!$OMP CRITICAL
- call CCTK_WARN(1, 'count > GRHydro_countmax! ')
+ call CCTK_WARN(failinfomode, 'count > GRHydro_countmax! ')
write(warnline,'(a28,i2)') 'on carpet reflevel: ',GRHydro_reflevel
- call CCTK_WARN(1,warnline)
+ call CCTK_WARN(failinfomode,warnline)
write(warnline,'(a20,3g16.7)') 'xyz location: ',x,y,z
- call CCTK_WARN(1,warnline)
+ call CCTK_WARN(failinfomode,warnline)
write(warnline,'(a20,3i5)') 'ijk location: ',ii,jj,kk
- call CCTK_WARN(1,warnline)
+ call CCTK_WARN(failinfomode,warnline)
write(warnline,'(a20,g16.7)') 'radius: ',r
- call CCTK_WARN(1,warnline)
- call CCTK_WARN(1,"Setting the point to atmosphere")
+ call CCTK_WARN(failinfomode,warnline)
+ call CCTK_WARN(failinfomode,"Setting the point to atmosphere")
!$OMP END CRITICAL
! for safety, let's set the point to atmosphere
@@ -653,16 +667,16 @@
rho,epsilon,temp,ye,xpress,keyerr,anyerr)
! error handling
if(anyerr.ne.0) then
- call CCTK_WARN(1,"EOS error in c2p 2")
+ call CCTK_WARN(failinfomode,"EOS error in c2p 2")
write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
- call CCTK_WARN(1,warnline)
+ call CCTK_WARN(failinfomode,warnline)
write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
- call CCTK_WARN(1,warnline)
+ call CCTK_WARN(failinfomode,warnline)
write(warnline,"(A7,i8)") "code: ",keyerr(1)
- call CCTK_WARN(1,warnline)
+ call CCTK_WARN(failinfomode,warnline)
write(warnline,"(A10,i5)") "reflevel: ", GRHydro_reflevel
- call CCTK_WARN(1,warnline)
- call CCTK_WARN(0,"Aborting!!!")
+ call CCTK_WARN(failinfomode,warnline)
+ call CCTK_WARN(failwarnmode,"Aborting!!!")
endif
f = pnew - xpress
@@ -702,16 +716,16 @@
! error handling
if(anyerr.ne.0) then
- call CCTK_WARN(1,"EOS error in c2p 3")
+ call CCTK_WARN(failinfomode,"EOS error in c2p 3")
write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
- call CCTK_WARN(1,warnline)
+ call CCTK_WARN(failinfomode,warnline)
write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
- call CCTK_WARN(1,warnline)
+ call CCTK_WARN(failinfomode,warnline)
write(warnline,"(A7,i8)") "code: ",keyerr(1)
- call CCTK_WARN(1,warnline)
+ call CCTK_WARN(failinfomode,warnline)
write(warnline,"(A10,i5)") "reflevel: ", GRHydro_reflevel
- call CCTK_WARN(1,warnline)
- call CCTK_WARN(0,"Aborting!!!")
+ call CCTK_WARN(failinfomode,warnline)
+ call CCTK_WARN(failwarnmode,"Aborting!!!")
endif
File [modified]: GRHydro_ParamCheck.F90
Delta lines: +0 -1
===================================================================
--- branches/hot_and_MHD_temp_dev/src/GRHydro_ParamCheck.F90 2010-11-16 22:44:45 UTC (rev 177)
+++ branches/hot_and_MHD_temp_dev/src/GRHydro_ParamCheck.F90 2010-11-17 23:07:08 UTC (rev 178)
@@ -105,6 +105,5 @@
endif
-
end subroutine GRHydro_ParamCheck
File [modified]: Utils.F90
Delta lines: +11 -19
===================================================================
--- branches/hot_and_MHD_temp_dev/src/Utils.F90 2010-11-16 22:44:45 UTC (rev 177)
+++ branches/hot_and_MHD_temp_dev/src/Utils.F90 2010-11-17 23:07:08 UTC (rev 178)
@@ -31,29 +31,21 @@
implicit none
DECLARE_CCTK_ARGUMENTS
- integer loc(3)
+ integer i,j,k
- loc = minloc(y_e_con/dens)
-#if 0
- write(6,*) minval(y_e_con/dens)
- write(6,*) y_e_con_rhs(loc(1),loc(2),loc(3)),densrhs(loc(1),loc(2),loc(3))
- write(6,*) y_e_con(loc(1),loc(2),loc(3)),dens(loc(1),loc(2),loc(3))
- write(6,*) loc
- write(6,*) dens(4,5,5),y_e(4,5,5),y_e_con(4,5,5)
- write(6,*) x(loc(1),loc(2),loc(3)),y(loc(1),loc(2),loc(3)),z(loc(1),loc(2),loc(3))
-#endif
- loc(1) = 4
- loc(2) = 5
- loc(3) = 4
- write(6,*) minval(y_e_con/dens)
- write(6,*) y_e_con_rhs(loc(1),loc(2),loc(3)),densrhs(loc(1),loc(2),loc(3))
- write(6,*) y_e_con(loc(1),loc(2),loc(3)),dens(loc(1),loc(2),loc(3))
- write(6,*) loc
- write(6,*) dens(4,5,5),y_e(4,5,5),y_e_con(4,5,5)
- write(6,*) x(loc(1),loc(2),loc(3)),y(loc(1),loc(2),loc(3)),z(loc(1),loc(2),loc(3))
+ GRHydro_reflevel = aint(log10(dble(cctk_levfac(1)))/log10(2.0d0))
+ i=25
+ j=3
+ k=3
+ write(6,"(i4,1P10E15.6)") GRHydro_reflevel, temperature(i,j,k),temperature(i,j,k),temperature(i,j,k)
+ write(6,"(i4,1P10E15.6)") GRHydro_reflevel, rho(i,j,k)
+ write(6,"(3i4)") cctk_lsh(1),cctk_lsh(2),cctk_lsh(3)
call flush(6)
+! if(GRHydro_reflevel.eq.4.and.temperature(1,1,1).lt.0.1d0) then
+! call CCTK_WARN(0,"stop")
+! endif
end subroutine GRHydro_Debug
More information about the Commits
mailing list