aboutsummaryrefslogtreecommitdiff
path: root/src/GRHydro_ShockTubeM.F90
diff options
context:
space:
mode:
Diffstat (limited to 'src/GRHydro_ShockTubeM.F90')
-rw-r--r--src/GRHydro_ShockTubeM.F90101
1 files changed, 93 insertions, 8 deletions
diff --git a/src/GRHydro_ShockTubeM.F90 b/src/GRHydro_ShockTubeM.F90
index 1169fef..96b0e7c 100644
--- a/src/GRHydro_ShockTubeM.F90
+++ b/src/GRHydro_ShockTubeM.F90
@@ -54,6 +54,13 @@ subroutine GRHydro_shocktubeM(CCTK_ARGUMENTS)
velzl, velzr, epsl, epsr
CCTK_REAL :: bvcxl,bvcyl,bvczl,bvcxr,bvcyr,bvczr
+ bvcxl = Bx_init
+ bvcyl = By_init
+ bvczl = Bz_init
+ bvcxr = Bx_init
+ bvcyr = By_init
+ bvczr = Bz_init
+
nx = cctk_lsh(1)
ny = cctk_lsh(2)
nz = cctk_lsh(3)
@@ -110,17 +117,95 @@ subroutine GRHydro_shocktubeM(CCTK_ARGUMENTS)
velzr = 0.d0
epsl = 1500.d0
epsr = 1.5d-2
- else
+ else if (CCTK_EQUALS(shock_case,"Balsara1")) then
+ rhol = 1.d0
+ rhor = 0.125d0
+ velxl = 0.d0
+ velxr = 0.d0
+ velyl = 0.d0
+ velyr = 0.d0
+ velzl = 0.d0
+ velzr = 0.d0
+ bvcxl=0.5d0
+ bvcxr=0.5d0
+ bvcyl=1.d0
+ bvcyr=-1.d0
+ bvczl=0.d0
+ bvczr=0.d0
+ epsl = 1.0/rhol
+ epsr = 0.1/rhor
+ else if (CCTK_EQUALS(shock_case,"Balsara2")) then
+ rhol = 1.d0
+ rhor = 1.d0
+ velxl = 0.d0
+ velxr = 0.d0
+ velyl = 0.d0
+ velyr = 0.d0
+ velzl = 0.d0
+ velzr = 0.d0
+ bvcxl=5.0d0
+ bvcxr=5.0d0
+ bvcyl=6.d0
+ bvcyr=0.7d0
+ bvczl=6.d0
+ bvczr=0.7d0
+ epsl = 1.5d0*30.0d0/rhol
+ epsr = 1.5d0*1.0d0/rhor
+ else if (CCTK_EQUALS(shock_case,"Balsara3")) then
+ rhol = 1.d0
+ rhor = 1.d0
+ velxl = 0.d0
+ velxr = 0.d0
+ velyl = 0.d0
+ velyr = 0.d0
+ velzl = 0.d0
+ velzr = 0.d0
+ bvcxl=10.0d0
+ bvcxr=10.0d0
+ bvcyl=7.d0
+ bvcyr=0.7d0
+ bvczl=7.d0
+ bvczr=0.7d0
+ epsl = 1.5d0*1000.0d0/rhol
+ epsr = 1.5d0*0.1d0/rhor
+ else if (CCTK_EQUALS(shock_case,"Balsara4")) then
+ rhol = 1.d0
+ rhor = 1.d0
+ velxl = 0.999d0
+ velxr = -0.999d0
+ velyl = 0.d0
+ velyr = 0.d0
+ velzl = 0.d0
+ velzr = 0.d0
+ bvcxl=10.0d0
+ bvcxr=10.0d0
+ bvcyl=7.d0
+ bvcyr=-7.d0
+ bvczl=7.d0
+ bvczr=-7.d0
+ epsl = 1.5d0*0.1d0/rhol
+ epsr = 1.5d0*0.1d0/rhor
+ else if (CCTK_EQUALS(shock_case,"Balsara5")) then
+ rhol = 1.08d0
+ rhor = 1.d0
+ velxl = 0.4d0
+ velxr = -0.45d0
+ velyl = 0.3d0
+ velyr = -0.2d0
+ velzl = 0.2d0
+ velzr = 0.2d0
+ bvcxl=2.0d0
+ bvcxr=2.0d0
+ bvcyl=0.3d0
+ bvcyr=-0.7d0
+ bvczl=0.3d0
+ bvczr=0.5d0
+ epsl = 1.5d0*0.95d0/rhol
+ epsr = 1.5d0*1.0d0/rhor
+ else
call CCTK_WARN(0,"Shock case not recognized")
end if
- bvcxl = Bx_init
- bvcyl = By_init
- bvczl = Bz_init
- bvcxr = Bx_init
- bvcyr = By_init
- bvczr = Bz_init
-
if ( ((change_shock_direction==0).and.(direction .lt. 0.0d0)).or.&
((change_shock_direction==1).and.(direction .gt. 0.0d0)) ) then
rho(i,j,k) = rhol