This function calculates the delta function used in the paper of Ota et al. [7] (bibliography of treelm) for a single value.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(in) | :: | r |
input point coordinate |
resulting value of the 1D delta function
function inamuroDelta1D(r) result( res ) ! --------------------------------------------------------------------------- !> input point coordinate real(kind=rk), intent(in) :: r !> resulting value of the 1D delta function real(kind=rk) :: res ! --------------------------------------------------------------------------- real(kind=rk) :: r_abs ! --------------------------------------------------------------------------- r_abs = abs(r) if( floor(r_abs) .eq. 0) then res = (3._rk-2._rk*r_abs+sqrt(1._rk+4._rk*r_abs-4._rk*r_abs**2))/8._rk else if ( floor(r_abs) .eq. 1 ) then res = (5._rk-2._rk*r_abs-sqrt(-7._rk+12._rk*r_abs-4._rk*r_abs**2))/8._rk else res = 0._rk end if end function inamuroDelta1D