[Commits] [svn:einsteintoolkit] GRHydro/trunk/ (Rev. 437)
rhaas at tapir.caltech.edu
rhaas at tapir.caltech.edu
Thu Nov 8 19:53:19 CST 2012
User: rhaas
Date: 2012/11/08 07:53 PM
Modified:
/trunk/
interface.ccl, param.ccl
/trunk/src/
GRHydro_Minima.F90, GRHydro_Prim2ConM.F90
Log:
GRHydro: Introduce GRHydro_tau_min = 10^-10 max(tau(t=0)) to be used in tau rescaling in con2prim failures.
From: Bruno Coutinho Mundim <bcmsma at astro.rit.edu>
File Changes:
Directory: /trunk/src/
======================
File [modified]: GRHydro_Minima.F90
Delta lines: +2 -0
===================================================================
--- trunk/src/GRHydro_Minima.F90 2012-11-09 01:53:16 UTC (rev 436)
+++ trunk/src/GRHydro_Minima.F90 2012-11-09 01:53:19 UTC (rev 437)
@@ -46,6 +46,8 @@
if (initial_atmosphere_factor > 0.0) GRHydro_rho_min = GRHydro_rho_min * initial_atmosphere_factor
+ GRHydro_tau_min = tau_rel_min
+
return
end subroutine GRHydro_Rho_Minima_Setup
File [modified]: GRHydro_Prim2ConM.F90
Delta lines: +19 -1
===================================================================
--- trunk/src/GRHydro_Prim2ConM.F90 2012-11-09 01:53:16 UTC (rev 436)
+++ trunk/src/GRHydro_Prim2ConM.F90 2012-11-09 01:53:19 UTC (rev 437)
@@ -453,10 +453,13 @@
CCTK_REAL :: xtemp(1)
CCTK_INT :: i, j, k
CCTK_REAL :: det
+ CCTK_REAL :: maxtau0
+
+ maxtau0 = -1.0d60
if(evolve_temper.ne.1) then
- !$OMP PARALLEL DO PRIVATE(k,j,i,det)
+ !$OMP PARALLEL DO PRIVATE(k,j,i,det), REDUCTION(MAX:maxtau0)
do k = GRHydro_stencil,cctk_lsh(3)-GRHydro_stencil+1
do j = GRHydro_stencil,cctk_lsh(2)-GRHydro_stencil+1
do i = GRHydro_stencil,cctk_lsh(1)-GRHydro_stencil+1
@@ -473,10 +476,25 @@
eps(i,j,k),press(i,j,k),Bvecx(i,j,k), &
Bvecy(i,j,k), Bvecz(i,j,k), w_lorentz(i,j,k))
+ maxtau0 = max(maxtau0,tau(i,j,k))
+
end do
end do
end do
!$OMP END PARALLEL DO
+
+ ! TODO: to actually reduce GRHydro_tau_min over all Carpet components
+ ! we need to modify Carpet looping to allow this function to be called
+ ! on all AMR levels before calling any other function. The best would be
+ ! to set a special bin where functions would be called on all levels first
+ ! instead of calling all functions per level. The workaround for this problem
+ ! is to set GRHydro_tau_min to a user specified value as it was set in
+ ! GRHydro_Minima.F90. Once this issue is solved, then uncomment the line
+ ! below and create two other routines to be run in global mode so that
+ ! GRHydro_tau_min can be properly initialized and reduced.
+
+ !GRHydro_tau_min = GRHydro_tau_min * maxtau0
+
else
!$OMP PARALLEL DO PRIVATE(k,j,i,det)
do k = GRHydro_stencil,cctk_lsh(3)-GRHydro_stencil+1
Directory: /trunk/
==================
File [modified]: interface.ccl
Delta lines: +1 -0
===================================================================
--- trunk/interface.ccl 2012-11-09 01:53:16 UTC (rev 436)
+++ trunk/interface.ccl 2012-11-09 01:53:19 UTC (rev 437)
@@ -359,6 +359,7 @@
CCTK_REAL GRHydro_minima type = SCALAR
{
GRHydro_rho_min
+ GRHydro_tau_min
# GRHydro_dens_min
} "Atmosphere values"
File [modified]: param.ccl
Delta lines: +5 -0
===================================================================
--- trunk/param.ccl 2012-11-09 01:53:16 UTC (rev 436)
+++ trunk/param.ccl 2012-11-09 01:53:19 UTC (rev 437)
@@ -404,6 +404,11 @@
##Parameters for the atmosphere.
+REAL tau_rel_min "A minimum relative tau (taumin = maxtau(t=0) * tau_rel_min) below which tau is reschaled"
+{
+ 0: :: ""
+} 1.e-10
+
REAL rho_abs_min "A minimum rho below which evolution is turned off (atmosphere). If negative, the relative minimum will be used instead."
{
-1.0: :: ""
More information about the Commits
mailing list