[Commits] [svn:einsteintoolkit] GRHydro/trunk/src/ (Rev. 358)

rhaas at tapir.caltech.edu rhaas at tapir.caltech.edu
Wed Jun 20 11:17:32 CDT 2012


User: rhaas
Date: 2012/06/20 11:17 AM

Modified:
 /trunk/src/
  GRHydro_HLLEM.F90

Log:
 Change the characteristic speed for psidc.
 
 It was set to +-c when it should be the maximum coming from the constraint
 that the normal vector to the characteristic hypersurface of a wave
 propagating along an arbitrary x direction be spacelike. This results
 into the following bound for the wavespeed:
 
 +- \alpha sqrt(\gamma^{xx}) - \beta^x)
 
 Patch by Bruno Mundim.

File Changes:

Directory: /trunk/src/
======================

File [modified]: GRHydro_HLLEM.F90
Delta lines: +20 -5
===================================================================
--- trunk/src/GRHydro_HLLEM.F90	2012-06-20 16:16:52 UTC (rev 357)
+++ trunk/src/GRHydro_HLLEM.F90	2012-06-20 16:17:32 UTC (rev 358)
@@ -55,6 +55,7 @@
   CCTK_REAL :: pressstarp,pressstarm,velxlowp,velxlowm,velylowp,velylowm,velzlowp,velzlowm
 
   CCTK_REAL :: psidcp, psidcm, psidcf, psidcdiff, psidcfp, psidcfm
+  CCTK_REAL :: charmax_dc, charmin_dc, charpm_dc
     
   CCTK_INT :: type_bits, trivial, not_trivial
 
@@ -440,13 +441,27 @@
                end if
              case(1)
              !!$ Wavespeeds for psidc are +/-c, not Fast Magnetosonic?
-             psidcf = 0.5d0 * (1.d0 * psidcfp - (-1.d0) * psidcfm + &
-                  1.d0 * (-1.d0) * psidcdiff) 
+             !!$ psidcf = 0.5d0 * (1.d0 * psidcfp - (-1.d0) * psidcfm + &
+             !!$      1.d0 * (-1.d0) * psidcdiff) 
+
+             !!$ The fastest speed for psidc comes from the condition
+             !!$ that the normal vector to the characteristic hypersurface
+             !!$ be spacelike (Eq. 60 of Anton et al.)
+
+             charmax_dc = sqrt(usendh) - avg_beta/avg_alp
+             charmin_dc = -1.d0*sqrt(usendh) - avg_beta/avg_alp
+             charpm_dc = charmax_dc - charmin_dc
+
+             psidcf = (charmax_dc * psidcfp - charmin_dc * psidcfm + &
+                       charmax_dc * charmin_dc * psidcdiff) / charpm_dc
+
              if(decouple_normal_Bfield .ne. 0) then ! same expression for HLLE and LLF
                !!$ B^i field decouples from the others and has same propagation
-               !!$ speed as divergence
-               f1(5+flux_direction) = 0.5d0 * (1.d0 * fplus(5+flux_direction) - (-1.d0) * fminus(5+flux_direction) + &
-                    1.d0 * (-1.d0) * qdiff(5+flux_direction)) 
+               !!$ speed as divergence -null direction,  
+               !!$ \pm sqrt(g^{xx}} - beta^x/alpha
+               f1(5+flux_direction) = (charmax_dc * fplus(5+flux_direction) &
+                                     - charmin_dc * fminus(5+flux_direction) + &
+                  charmax_dc * charmin_dc * qdiff(5+flux_direction)) / charpm_dc
              end if
              case(2)
              charmax = setcharmax



More information about the Commits mailing list