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

bcmsma at astro.rit.edu bcmsma at astro.rit.edu
Mon Oct 3 11:05:31 CDT 2011


User: bmundim
Date: 2011/10/03 11:05 AM

Modified:
 /trunk/
  param.ccl
 /trunk/src/
  GRHydro_HLLEM.F90, GRHydro_PreLoop.F90, GRHydro_RiemannSolveM.F90, GRHydro_Scalars.F90

Log:
 RIT dev: Implement local Lax-Friedrichs flux calculation (MHD only).

File Changes:

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

File [modified]: GRHydro_HLLEM.F90
Delta lines: +25 -9
===================================================================
--- trunk/src/GRHydro_HLLEM.F90	2011-09-26 15:50:04 UTC (rev 280)
+++ trunk/src/GRHydro_HLLEM.F90	2011-10-03 16:05:30 UTC (rev 281)
@@ -33,6 +33,7 @@
 
 subroutine GRHydro_HLLEM(CCTK_ARGUMENTS)
   USE GRHydro_EigenproblemM
+  USE GRHydro_Scalars
 
   implicit none
   
@@ -43,7 +44,7 @@
   CCTK_REAL, dimension(8) :: cons_p,cons_m,fplus,fminus,f1,qdiff
   CCTK_REAL, dimension(10) :: prim_p, prim_m
   CCTK_REAL, dimension(5) :: lamminus,lamplus
-  CCTK_REAL ::  charmin, charmax, charpm,avg_alp,avg_det, sdet
+  CCTK_REAL ::  charmin, charmax, charpm,chartop,avg_alp,avg_det, sdet
   CCTK_REAL :: gxxh, gxyh, gxzh, gyyh, gyzh, gzzh, uxxh, uxyh, &
        uxzh, uyyh, uyzh, uzzh, avg_beta, usendh, alp_l, alp_r, &
        cs2_p, cs2_m, dpdeps_p, dpdeps_m
@@ -404,6 +405,8 @@
           charmax = max(0.d0, lamplus(1), lamplus(2), lamplus(3), &
                lamplus(4),lamplus(5),  lamminus(1),lamminus(2),lamminus(3),&
                lamminus(4),lamminus(5))
+
+          chartop = max(-charmin,charmax)
           
           charpm = charmax - charmin
 
@@ -413,8 +416,12 @@
              
              qdiff(m) = cons_m(m) - cons_p(m)
              
-             f1(m) = (charmax * fplus(m) - charmin * fminus(m) + &
-                  charmax * charmin * qdiff(m)) / charpm
+            if (HLLE) then
+              f1(m) = (charmax * fplus(m) - charmin * fminus(m) + &
+                       charmax * charmin * qdiff(m)) / charpm
+            else if (LLF) then
+              f1(m) = 0.5d0 * (fplus(m) + fminus(m) - chartop * qdiff(m)) 
+            end if 
              
           end do
 
@@ -422,17 +429,26 @@
            psidcdiff = psidcm - psidcp
            select case(whichpsidcspeed)
              case(0)
-             psidcf = (charmax * psidcfp - charmin * psidcfm + &
-                  charmax * charmin * psidcdiff) / charpm
+               if (HLLE) then
+                 psidcf = (charmax * psidcfp - charmin * psidcfm + &
+                           charmax * charmin * psidcdiff) / charpm
+               else if (LLF) then
+                 psidcf = 0.5d0 * (psidcfp + psidcfm - chartop * psidcdiff)
+               end if
              case(1)
              !!$ Wavespeeds for psidc are +/-c, not Fast Magnetosonic?
-             psidcf = (1.d0 * psidcfp - (-1.d0) * psidcfm + &
-                  1.d0 * (-1.d0) * psidcdiff) / 2.d0
+             psidcf = 0.5d0 * (1.d0 * psidcfp - (-1.d0) * psidcfm + &
+                  1.d0 * (-1.d0) * psidcdiff) 
              case(2)
              charmax = setcharmax
              charmin = setcharmin
-             psidcf = (charmax * psidcfp - charmin * psidcfm + &
-                  charmax * charmin * psidcdiff) / charpm
+               if (HLLE) then
+                 psidcf = (charmax * psidcfp - charmin * psidcfm + &
+                           charmax * charmin * psidcdiff) / charpm
+               else if (LLF) then
+                 chartop = max(-charmin,charmax)
+                 psidcf = 0.5d0 * (psidcfp + psidcfm - chartop * psidcdiff)
+               end if
            end select
           endif
 

File [modified]: GRHydro_PreLoop.F90
Delta lines: +7 -0
===================================================================
--- trunk/src/GRHydro_PreLoop.F90	2011-09-26 15:50:04 UTC (rev 280)
+++ trunk/src/GRHydro_PreLoop.F90	2011-10-03 16:05:30 UTC (rev 281)
@@ -44,6 +44,8 @@
   MC1 = .false.
   MC2 = .false.
   SUPERBEE = .false.
+  HLLE = .false.
+  LLF = .false.
 
   if (CCTK_EQUALS(tvd_limiter,"minmod")) then
     MINMOD = .true.    
@@ -92,6 +94,11 @@
     call CCTK_WARN(0, "Numerical Viscosity Mode not recognized!")
   end if
 
+  if (CCTK_EQUALS(riemann_solver,"HLLE")) then
+    HLLE = .true.
+  else if (CCTK_EQUALS(riemann_solver,"LLF")) then
+    LLF = .true.
+  end if
 
 end subroutine GRHydro_Scalar_Setup
 

File [modified]: GRHydro_RiemannSolveM.F90
Delta lines: +1 -1
===================================================================
--- trunk/src/GRHydro_RiemannSolveM.F90	2011-09-26 15:50:04 UTC (rev 280)
+++ trunk/src/GRHydro_RiemannSolveM.F90	2011-10-03 16:05:30 UTC (rev 281)
@@ -38,7 +38,7 @@
 
   CCTK_INT :: i,j,k
   
-  if (CCTK_EQUALS(riemann_solver,"HLLE")) then
+  if (CCTK_EQUALS(riemann_solver,"HLLE").or.CCTK_EQUALS(riemann_solver,"LLF")) then
      
      call GRHydro_HLLEM(CCTK_PASS_FTOF)
      

File [modified]: GRHydro_Scalars.F90
Delta lines: +1 -0
===================================================================
--- trunk/src/GRHydro_Scalars.F90	2011-09-26 15:50:04 UTC (rev 280)
+++ trunk/src/GRHydro_Scalars.F90	2011-10-03 16:05:30 UTC (rev 281)
@@ -19,6 +19,7 @@
    LOGICAL :: MINMOD, MINMOD2, MINMOD3, MC1, MC2, SUPERBEE, PPM3, PPM4
    LOGICAL :: ANALYTICAL
    LOGICAL :: FAST
+   LOGICAL :: HLLE, LLF
 
    
  end module GRHydro_Scalars

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

File [modified]: param.ccl
Delta lines: +1 -0
===================================================================
--- trunk/param.ccl	2011-09-26 15:50:04 UTC (rev 280)
+++ trunk/param.ccl	2011-10-03 16:05:30 UTC (rev 281)
@@ -203,6 +203,7 @@
   "Roe"		:: "Standard Roe solver"
   "Marquina"	:: "Marquina flux"
   "HLLE"	:: "HLLE"
+  "LLF"	:: "Local Lax-Friedrichs (MHD only at the moment)"
 } "HLLE"
 
 



More information about the Commits mailing list