wrap_periodic2_point Subroutine

public subroutine wrap_periodic2_point(plan, p)

periodic2 領域内へ点座標を折り返す。

Arguments

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

FMM 計画。

real(kind=dp), intent(inout) :: p(3)

Called by

proc~~wrap_periodic2_point~2~~CalledByGraph proc~wrap_periodic2_point~2 wrap_periodic2_point proc~core_eval_point_impl core_eval_point_impl proc~core_eval_point_impl->proc~wrap_periodic2_point~2 proc~core_eval_points_impl core_eval_points_impl proc~core_eval_points_impl->proc~wrap_periodic2_point~2 proc~core_eval_potential_point_impl core_eval_potential_point_impl proc~core_eval_potential_point_impl->proc~wrap_periodic2_point~2 proc~core_eval_potential_points_impl core_eval_potential_points_impl proc~core_eval_potential_points_impl->proc~wrap_periodic2_point~2

Source Code

  subroutine wrap_periodic2_point(plan, p)
    type(fmm_plan_type), intent(in) :: plan
    real(dp), intent(inout) :: p(3)
    integer(i32) :: k, axis

    if (.not. plan%options%use_periodic2) return
    do k = 1_i32, 2_i32
      axis = plan%options%periodic_axes(k)
      p(axis) = plan%options%target_box_min(axis) &
                + modulo(p(axis) - plan%options%target_box_min(axis), plan%options%periodic_len(k))
    end do
  end subroutine wrap_periodic2_point