resolve_face_sampling_geometry Subroutine

public subroutine resolve_face_sampling_geometry(box_min, box_max, inject_face, axis_n, axis_t1, axis_t2, boundary_value, inward_normal)

注入面名から法線軸・接線軸・境界値・内向き法線を返す。

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: box_min(3)
real(kind=dp), intent(in) :: box_max(3)
character(len=*), intent(in) :: inject_face

注入面識別子。

integer, intent(out) :: axis_n

法線軸インデックス(1:x, 2:y, 3:z)。

integer, intent(out) :: axis_t1

法線軸インデックス(1:x, 2:y, 3:z)。 第1接線軸インデックス。

integer, intent(out) :: axis_t2

法線軸インデックス(1:x, 2:y, 3:z)。 第1接線軸インデックス。 第2接線軸インデックス。

real(kind=dp), intent(out) :: boundary_value

注入面の境界座標値 [m]。

real(kind=dp), intent(out) :: inward_normal(3)

Calls

proc~~resolve_face_sampling_geometry~~CallsGraph proc~resolve_face_sampling_geometry resolve_face_sampling_geometry proc~lower_ascii lower_ascii proc~resolve_face_sampling_geometry->proc~lower_ascii

Called by

proc~~resolve_face_sampling_geometry~~CalledByGraph proc~resolve_face_sampling_geometry resolve_face_sampling_geometry proc~compute_face_average_potential compute_face_average_potential proc~compute_face_average_potential->proc~resolve_face_sampling_geometry proc~reservoir_face_velocity_correction reservoir_face_velocity_correction proc~reservoir_face_velocity_correction->proc~compute_face_average_potential proc~init_particle_batch_from_config init_particle_batch_from_config proc~init_particle_batch_from_config->proc~reservoir_face_velocity_correction

Source Code

  subroutine resolve_face_sampling_geometry( &
    box_min, box_max, inject_face, axis_n, axis_t1, axis_t2, boundary_value, inward_normal &
    )
    real(dp), intent(in) :: box_min(3), box_max(3)
    character(len=*), intent(in) :: inject_face
    integer, intent(out) :: axis_n, axis_t1, axis_t2
    real(dp), intent(out) :: boundary_value
    real(dp), intent(out) :: inward_normal(3)

    inward_normal = 0.0d0
    select case (trim(lower_ascii(inject_face)))
    case ('x_low')
      axis_n = 1
      axis_t1 = 2
      axis_t2 = 3
      boundary_value = box_min(1)
      inward_normal(1) = 1.0d0
    case ('x_high')
      axis_n = 1
      axis_t1 = 2
      axis_t2 = 3
      boundary_value = box_max(1)
      inward_normal(1) = -1.0d0
    case ('y_low')
      axis_n = 2
      axis_t1 = 3
      axis_t2 = 1
      boundary_value = box_min(2)
      inward_normal(2) = 1.0d0
    case ('y_high')
      axis_n = 2
      axis_t1 = 3
      axis_t2 = 1
      boundary_value = box_max(2)
      inward_normal(2) = -1.0d0
    case ('z_low')
      axis_n = 3
      axis_t1 = 1
      axis_t2 = 2
      boundary_value = box_min(3)
      inward_normal(3) = 1.0d0
    case ('z_high')
      axis_n = 3
      axis_t1 = 1
      axis_t2 = 2
      boundary_value = box_max(3)
      inward_normal(3) = -1.0d0
    case default
      error stop 'Unknown particles.species.inject_face.'
    end select
  end subroutine resolve_face_sampling_geometry