• VTF
  • FSI
  • AMROC
  • SFC
  • Motion
  • STLIB
  • Main Page
  • src/limiters/slopelim.f

    c
    c     # Slope-limiting within Clawpack
    c     # Author: Ralf Deiterding, ralf@cacr.caltech.edu
    c
    c     =====================================================
          double precision function slopelim(a,b,mlim)
    c     =====================================================
    c
    c     # Call usual TVD limiter-functions with phi(b/a).
    c
          implicit double precision (a-h,o-z)
    c
          if (a.ne.0.d0.and.mlim.gt.0) then 
             slopelim = philim(a,b,mlim)
          else
             slopelim = 1.d0
          endif
    c
          return
          end
    c
    c
    c ===================================================================
          subroutine reclim(r,r1,r2,mlim,om,rl,rr)
    c ===================================================================
    c
    c     # MUSCL reconstruction with slope-limiting
    c     # Linear reconstruction: om=0.d0
    c     # 2nd order spatial reconstuction: om!=0.d0 
    c     # 3rd order spatial reconstruction: om=1.d0/3.d0 
    c     # Higher order reconstructions are not conservative!
    c
          implicit double precision (a-h,o-z)
    c
          q1 = r  - r1
          q2 = r2 - r
          sl1 = slopelim(q1,q2,mlim)*q1
          sl2 = slopelim(q2,q1,mlim)*q2  
          rl = r - 0.25d0*((1.d0+om)*sl1 + (1.d0-om)*sl2)
          rr = r + 0.25d0*((1.d0-om)*sl1 + (1.d0+om)*sl2)
    c
          return
          end
    c
    

<