g1_roma Function

public pure function g1_roma(r) result(val)

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: r

Distance from filter center

Return Value real(kind=wp)

Result


Source Code

    pure function g1_roma(r) result(val)
      ! Roma and Peskin's filter.
      implicit none
      real(wp), intent(in) :: r                                                !! Distance from filter center
      real(wp)             :: val                                              !! Result

      if (abs(r).le.1.0_wp/3.0_wp) then
        val=0.5_wp*(1.0_wp+sqrt(-6.75_wp*r**2+1.0_wp))
      else if ((abs(r).ge.1.0_wp/3.0_wp).and.(abs(r).le.1.0_wp)) then
        val=0.25_wp*(5.0_wp-4.5_wp*abs(r)-sqrt(-3.0_wp*(1.0_wp-1.5_wp*abs(r))**2+1.0_wp))
      else
        val=0.0_WP
      end if

      return
    end function g1_roma