建立光滑核函数句柄
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(smoothed_kernel_function_type), | intent(inout) | :: | self |
subroutine init(self)
class(smoothed_kernel_function_type), intent(inout) :: self
real(rk) :: hv(2)
self%hsml = rgn_obj%hsml
select case (spc_obj%smoothed_kernel_function)
case ('cubic-spline')
self%scale = 2
self%kernel => cubic_spline_kernel
self%factor = 15.0_rk/(7.0_rk*Pi*self%hsml*self%hsml)
case ('quintic-spline')
self%scale = 3
self%kernel => quintic_spline_kernel
self%factor = 7.0_rk/(478.0_rk*Pi*self%hsml*self%hsml)
case default
self%scale = 2
self%kernel => cubic_spline_kernel
self%factor = 15.0_rk/(7.0_rk*Pi*self%hsml*self%hsml)
call terminal_obj%warning('Unknown kernel type, use cubic-spline kernel by default')
end select
call self%kernel(0.0_rk, [0.0_rk, 0.0_rk], self%selfden, hv)
self%scale_hsml = self%hsml*self%scale
end subroutine init