aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrhaas <rhaas@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45>2012-05-16 16:28:21 +0000
committerrhaas <rhaas@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45>2012-05-16 16:28:21 +0000
commit5894edf0407dad2f9d73e743ef2a9ea8877985f6 (patch)
tree3a888d4e9eee97f72fd706ce4b39dd16efce700f
parentbf0af4bc506767bf32e656bb83f8b3442421c374 (diff)
GRHydro: decouple Bvec(flux_direction) from other two for divclean
since it and psidc form a 2d subsystem of the characteristic system. See eg. Mignonoe et al. arXiv:1001.2832v2 section 3.1. git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinEvolve/GRHydro/trunk@335 c83d129a-5a75-4d5a-9c4d-ed3a5855bf45
-rw-r--r--param.ccl4
-rw-r--r--src/GRHydro_HLLEM.F906
2 files changed, 10 insertions, 0 deletions
diff --git a/param.ccl b/param.ccl
index f5ad996..d022a93 100644
--- a/param.ccl
+++ b/param.ccl
@@ -549,6 +549,10 @@ CCTK_REAL setcharmin "Minimum characteristic speed for psidc if psidcspeed is se
-1:0 :: "Any value smaller than speed of light - sign should be negative"
} -1.0
+BOOLEAN decouple_normal_Bfield "when using divergence cleaning properly decouple Bx,psidc subsystem"
+{
+} yes
+
boolean track_divB "Track the magnetic field constraint violations"
{
} "no"
diff --git a/src/GRHydro_HLLEM.F90 b/src/GRHydro_HLLEM.F90
index 995dd67..1e274eb 100644
--- a/src/GRHydro_HLLEM.F90
+++ b/src/GRHydro_HLLEM.F90
@@ -442,6 +442,12 @@ subroutine GRHydro_HLLEM(CCTK_ARGUMENTS)
!!$ Wavespeeds for psidc are +/-c, not Fast Magnetosonic?
psidcf = 0.5d0 * (1.d0 * psidcfp - (-1.d0) * psidcfm + &
1.d0 * (-1.d0) * psidcdiff)
+ 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))
+ end if
case(2)
charmax = setcharmax
charmin = setcharmin