Subroutine to save the pressures along a line following the flow, at distance from a border. The theoretical values are also stored.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(FE_FILM), | intent(in) | :: | fe_f | FE_FILM element |
||
character(len=*), | intent(in) | :: | file_name | filename |
||
real(kind=R8), | intent(in) | :: | lx | slider length |
||
real(kind=R8), | intent(in) | :: | zy | distance from a border |
subroutine save_profile_x_comp_slider(fe_f, file_name, lx, zy)
implicit none
type(FE_FILM), intent(in) :: fe_f !! [[FE_FILM]] *element*
character(len=*), intent(in) :: file_name !! *filename*
real(kind=R8), intent(in) :: lx !! *slider length*
real(kind=R8), intent(in) :: zy !! *distance from a border*
real(kind=R8) :: pref, K, dr, hr, hb, p0
integer(kind=I4) :: i, kk
dr = lx / fe_f%m%n
dr = dr / 10
K = maxval(fe_f%vn(:, H_N))/minval(fe_f%vn(:, H_N))
hr = minval(fe_f%vn(:, H_N))
pref = 6 * fe_f%data_f%fl%mu_0 * fe_f%data_f%V_x * lx / (hr ** 2)
p0 = minval(fe_f%vn(:, P_N))
call get_unit(kk)
open(kk, file = file_name, status = 'unknown')
do i = 1, fe_f%m%n
if (((fe_f%m%y(i) - zy)**2) < (dr ** 2)) then
hb = fe_f%vn(i,H_N)/hr
write (kk, *) fe_f%m%x(i)/lx, hb, (fe_f%vn(i, P_N) - p0) / pref, &
1.0 / (K - 1) * (1.0 / hb - K / (K + 1) * (hb ** (-2) - K ** (-2)) - 1.0 / K)
endif
enddo
close(kk)
return
endsubroutine save_profile_x_comp_slider