Function that calculates the higher order terms, in the self-force expansion over .
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=ip), | intent(in) | :: | l | The -value. |
||
integer(kind=ip), | intent(in) | :: | order | The order of the higher order term, . |
The return value is .
function ldep ( l, order )
!! Function that calculates the higher order terms, \(c_n(\ell)\) in the
!! self-force expansion over \(\ell\).
integer(ip), intent(in) :: l
!! The \(\ell\)-value.
integer(ip), intent(in) :: order
!! The order of the higher order term, \(n\).
real(wp) :: ldep
!! The return value is \[c_n(\ell)=\begin{cases}
!! \frac{1}{(2\ell-1)(2\ell+3)}, & n=2 \\
!! \frac{1}{(2\ell-3)(2\ell-1)(2\ell+3)(2\ell+5)}, & n=3 \\
!! \frac{1}{(2\ell-5)(2\ell-3)(2\ell-1)(2\ell+3)(2\ell+5)(2\ell+7)}, & n=4
!! \end{cases} \].
real(wp) :: lm
lm = real(l,wp)
select case (order)
case (2)
ldep = 1.0_wp/((2*lm-1)*(2*lm+3))
case (4)
ldep = 1.0_wp/((2*lm-3)*(2*lm-1)*(2*lm+3)*(2*lm+5))
case (6)
ldep = 1.0_wp/((2*lm-5)*(2*lm-3)*(2*lm-1)*(2*lm+3)*(2*lm+5)*(2*lm+7))
case default
stop "error: ldep called with unsupported order"
end select
end function ldep