box全面を開口とする一時的な legacy reservoir spec を構築する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(sim_config), | intent(in) | :: | sim | |||
| type(particle_species_spec), | intent(in) | :: | source_spec | |||
| integer(kind=i32), | intent(in) | :: | face | |||
| type(particle_species_spec), | intent(out) | :: | inflow_spec |
pure subroutine make_boundary_inflow_spec(sim, source_spec, face, inflow_spec) type(sim_config), intent(in) :: sim type(particle_species_spec), intent(in) :: source_spec integer(i32), intent(in) :: face type(particle_species_spec), intent(out) :: inflow_spec integer(i32) :: axis logical :: high_side inflow_spec = source_spec inflow_spec%source_mode = 'reservoir_face' call boundary_face_name(face, inflow_spec%inject_face) inflow_spec%pos_low = sim%box_min inflow_spec%pos_high = sim%box_max axis = (face + 1_i32)/2_i32 high_side = mod(face, 2_i32) == 0_i32 if (high_side) then inflow_spec%pos_low(axis) = sim%box_max(axis) inflow_spec%pos_high(axis) = sim%box_max(axis) else inflow_spec%pos_low(axis) = sim%box_min(axis) inflow_spec%pos_high(axis) = sim%box_min(axis) end if inflow_spec%boundary_inflow_low = 0_i32 inflow_spec%boundary_inflow_high = 0_i32 end subroutine make_boundary_inflow_spec