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
commits@lists.einsteintoolkit.org