User: cott Date: 2011/01/04 08:40 AM
Modified: /trunk/src/ GRHydro_Prim2Con.F90
Log: * Update error handling in _hot routine of Prim2Con.
File Changes:
Directory: /trunk/src/ ======================
File [modified]: GRHydro_Prim2Con.F90 Delta lines: +25 -3 =================================================================== --- trunk/src/GRHydro_Prim2Con.F90 2011-01-02 15:54:48 UTC (rev 206) +++ trunk/src/GRHydro_Prim2Con.F90 2011-01-04 14:40:06 UTC (rev 207) @@ -231,9 +231,11 @@
! begin EOS Omni vars integer :: n,keytemp,anyerr,keyerr(1) + real*8 :: temp0(1) n = 1;keytemp = 0;anyerr = 0;keyerr(1) = 0 ! end EOS Omni vars
+ temp0 = temp w = 1.d0 / sqrt(1.d0 - (gxx*dvelx*dvelx + gyy*dvely*dvely + gzz & *dvelz*dvelz + 2*gxy*dvelx*dvely + 2*gxz*dvelx *dvelz + 2*gyz& *dvely*dvelz)) @@ -262,19 +264,39 @@ call CCTK_WARN(1,warnline) endif else - call CCTK_WARN(1,"EOS error in prim2con_hot") + ! This is a way of recovering even on finer refinement levels: + ! Use the average temperature at the interface instead of the + ! reconstructed specific internal energy. + 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,temp,ye + 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) - call CCTK_WARN(0,"Aborting!!!") + keytemp=1 + temp = temp0 + call EOS_Omni_press(handle,keytemp,GRHydro_eos_rf_prec,n,& + drho,deps,temp,ye,dpress,keyerr,anyerr) + keytemp=0 + if(anyerr.ne.0) then + call CCTK_WARN(1,"EOS error in prim2con_hot") + write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z + call CCTK_WARN(1,warnline) + write(warnline,"(1P10E15.6)") drho,deps,temp,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) + call CCTK_WARN(0,"Aborting!!!") + endif endif endif
+ vlowx = gxx*dvelx + gxy*dvely + gxz*dvelz vlowy = gxy*dvelx + gyy*dvely + gyz*dvelz vlowz = gxz*dvelx + gyz*dvely + gzz*dvelz
commits@lists.einsteintoolkit.org