distance_to_source_bbox_periodic Function

public function distance_to_source_bbox_periodic(plan, p, src_center, src_half)

periodic2 の minimum image を考慮した source BBox 距離を返す。

Arguments

Type IntentOptional Attributes Name
type(fmm_plan_type), intent(in) :: plan

FMM 計画。

real(kind=dp), intent(in) :: p(3)
real(kind=dp), intent(in) :: src_center(3)
real(kind=dp), intent(in) :: src_half(3)

Return Value real(kind=dp)


Calls

proc~~distance_to_source_bbox_periodic~~CallsGraph proc~distance_to_source_bbox_periodic distance_to_source_bbox_periodic proc~apply_periodic2_minimum_image apply_periodic2_minimum_image proc~distance_to_source_bbox_periodic->proc~apply_periodic2_minimum_image

Called by

proc~~distance_to_source_bbox_periodic~~CalledByGraph proc~distance_to_source_bbox_periodic distance_to_source_bbox_periodic proc~core_build_plan_impl core_build_plan_impl proc~core_build_plan_impl->proc~distance_to_source_bbox_periodic

Source Code

  real(dp) function distance_to_source_bbox_periodic(plan, p, src_center, src_half)
    type(fmm_plan_type), intent(in) :: plan
    real(dp), intent(in) :: p(3), src_center(3), src_half(3)
    real(dp) :: d(3), q(3)
    integer(i32) :: axis

    d = p - src_center
    call apply_periodic2_minimum_image(plan, d)
    do axis = 1_i32, 3_i32
      q(axis) = max(0.0d0, abs(d(axis)) - src_half(axis))
    end do
    distance_to_source_bbox_periodic = sqrt(sum(q*q))
  end function distance_to_source_bbox_periodic