注入面名から法線軸・接線軸・境界値・内向き法線を返す。
| Type | Intent | Optional | 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) |
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