AMROC Main     Blockstructured Adaptive Mesh Refinement in object-oriented C++


Main Page   Class Hierarchy   Compound List   File List  

limiters/slopelim.f

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 = 0.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


Quickstart     Users Guide     Programmers Reference     Installation      Examples     Download



AMROC Main      Home      Contact
last update: 06/01/04