From 1bfc6d69e35831149fe7f21caff01e0a8a805bf7 Mon Sep 17 00:00:00 2001 From: rhaas Date: Tue, 17 Jul 2012 17:08:18 +0000 Subject: * improve treatment of hot EOS warning From: Christian Ott git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinEvolve/GRHydro/trunk@393 c83d129a-5a75-4d5a-9c4d-ed3a5855bf45 --- src/GRHydro_Prim2Con.F90 | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) (limited to 'src/GRHydro_Prim2Con.F90') diff --git a/src/GRHydro_Prim2Con.F90 b/src/GRHydro_Prim2Con.F90 index 1329eda..bbbab06 100644 --- a/src/GRHydro_Prim2Con.F90 +++ b/src/GRHydro_Prim2Con.F90 @@ -153,7 +153,9 @@ subroutine primitive2conservative(CCTK_ARGUMENTS) xtemp(1) = 0.5d0*(temperature(i,j,k) + & temperature(i-xoffset,j-yoffset,k-zoffset)) call prim2con_hot(GRHydro_eos_handle, GRHydro_reflevel,& - i,j,k,x(i,j,k),y(i,j,k),z(i,j,k),g11l,g12l,g13l,g22l,& + cctk_iteration,i,j,k,x(i,j,k),y(i,j,k),z(i,j,k),& + r(i,j,k),& + g11l,g12l,g13l,g22l,& g23l,g33l, & avg_detl,densminus(i,j,k),sxminus(i,j,k),& syminus(i,j,k),szminus(i,j,k),tauminus(i,j,k),& @@ -170,8 +172,10 @@ subroutine primitive2conservative(CCTK_ARGUMENTS) xtemp(1) = 0.5d0*(temperature(i,j,k) + & temperature(i+xoffset,j+yoffset,k+zoffset)) call prim2con_hot(GRHydro_eos_handle, GRHydro_reflevel, & - i,j,k,x(i,j,k),y(i,j,k),z(i,j,k),g11r,g12r,g13r,& - g22r,g23r,g33r, & + cctk_iteration,i,j,k,x(i,j,k),y(i,j,k),z(i,j,k),& + r(i,j,k),& + g11r,g12r,g13r,& + g22r,g23r,g33r,& avg_detr, densplus(i,j,k),sxplus(i,j,k),& syplus(i,j,k),szplus(i,j ,k),tauplus(i,j,k),& rhoplus(i,j,k),velxplus(i,j,k),velyplus(i,j,k),& @@ -241,8 +245,8 @@ subroutine prim2con(handle, gxx, gxy, gxz, gyy, gyz, gzz, det, ddens, & end subroutine prim2con -subroutine prim2con_hot(handle, GRHydro_reflevel, ii, jj, kk, & - x, y, z, gxx, gxy, gxz, gyy, gyz, gzz, det, ddens, & +subroutine prim2con_hot(handle, GRHydro_reflevel, cctk_iteration, ii, jj, kk, & + x, y, z, r, gxx, gxy, gxz, gyy, gyz, gzz, det, ddens, & dsx, dsy, dsz, dtau , drho, dvelx, dvely, dvelz, deps, dpress, w, & temp,ye) @@ -254,8 +258,8 @@ subroutine prim2con_hot(handle, GRHydro_reflevel, ii, jj, kk, & CCTK_REAL :: gxx, gxy, gxz, gyy, gyz, gzz, det CCTK_REAL :: ddens, dsx, dsy, dsz, dtau, drho(1), dvelx, dvely, dvelz,& deps(1), dpress(1), w, vlowx, vlowy, vlowz - CCTK_REAL :: temp(1),ye(1), x, y, z - CCTK_INT :: handle, GRHydro_reflevel, ii, jj, kk + CCTK_REAL :: temp(1),ye(1), x, y, z, r + CCTK_INT :: handle, GRHydro_reflevel, cctk_iteration, ii, jj, kk CCTK_REAL :: sdet, h character(len=512) warnline @@ -287,7 +291,7 @@ subroutine prim2con_hot(handle, GRHydro_reflevel, ii, jj, kk, & if(anyerr.ne.0) then !$OMP CRITICAL call CCTK_WARN(1,"EOS error in prim2con_hot: lev 2") - write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z + write(warnline,"(i8,3i5,1P10E15.6)") cctk_iteration,ii,jj,kk,x,y,z,r call CCTK_WARN(1,warnline) write(warnline,"(1P10E15.6)") drho,deps,temp,ye call CCTK_WARN(1,warnline) @@ -302,15 +306,17 @@ subroutine prim2con_hot(handle, GRHydro_reflevel, ii, jj, kk, & ! Use the average temperature at the interface instead of the ! reconstructed specific internal energy. !$OMP CRITICAL - call CCTK_WARN(1,"EOS error in prim2con_hot: NOW using averaged temp!") - write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z - call CCTK_WARN(1,warnline) - write(warnline,"(1P10E15.6)") drho,deps,temp0,ye - call CCTK_WARN(1,warnline) - write(warnline,"(A7,i8)") "code: ",keyerr(1) - call CCTK_WARN(1,warnline) - write(warnline,"(A10,i5)") "reflevel: ", GRHydro_reflevel - call CCTK_WARN(1,warnline) + if(GRHydro_eos_hot_prim2con_warn.ne.0) then + call CCTK_WARN(1,"EOS error in prim2con_hot: NOW using averaged temp!") + write(warnline,"(i8,3i5,1P10E15.6)") cctk_iteration,ii,jj,kk,x,y,z,r + call CCTK_WARN(1,warnline) + write(warnline,"(1P10E15.6)") drho,deps,temp0,ye + call CCTK_WARN(1,warnline) + write(warnline,"(A7,i8)") "code: ",keyerr(1) + call CCTK_WARN(1,warnline) + write(warnline,"(A10,i5)") "reflevel: ", GRHydro_reflevel + call CCTK_WARN(1,warnline) + endif !$OMP END CRITICAL keytemp=1 temp = temp0 @@ -320,7 +326,7 @@ subroutine prim2con_hot(handle, GRHydro_reflevel, ii, jj, kk, & if(anyerr.ne.0) then !$OMP CRITICAL call CCTK_WARN(1,"EOS error in prim2con_hot") - write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z + write(warnline,"(i8,3i5,1P10E15.6)") cctk_iteration,ii,jj,kk,x,y,z,r call CCTK_WARN(1,warnline) write(warnline,"(1P10E15.6)") drho,deps,temp,ye call CCTK_WARN(1,warnline) -- cgit v1.2.3