CalculiX  2.13
A Free Software Three-Dimensional Structural Finite Element Program
friction_coefficient.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine friction_coefficient (l, d, ks, reynolds, form_fact, lambda)
 

Function/Subroutine Documentation

◆ friction_coefficient()

subroutine friction_coefficient ( real*8, intent(in)  l,
real*8, intent(in)  d,
real*8, intent(in)  ks,
real*8, intent(in)  reynolds,
real*8, intent(in)  form_fact,
real*8, intent(inout)  lambda 
)
26 !
27  implicit none
28 !
29  real*8 l,d,ks,reynolds,form_fact,lambda,alfa2,
30  & rey_turb_min,rey_lam_max,lzd,dd,ds,friction,dfriction,
31  & lambda_kr,lambda_turb,ksd
32 !
33  intent(in) l,d,ks,reynolds,form_fact
34 !
35  intent(inout) lambda
36 !
37  rey_turb_min=4000
38  rey_lam_max=2000
39  lzd=l/d
40  ksd=ks/d
41 !
42 ! transition laminar turbulent domain
43 !
44  if((reynolds.gt.rey_lam_max).and.(reynolds.lt.rey_turb_min))then
45 !
46  lambda_kr=64.d0/rey_lam_max
47 !
48 ! Solving the implicit White-Colebrook equation
49 ! 1/dsqrt(friction)=-2*log10(2.51/(Reynolds*dsqrt(friction)+0.27*Ks))
50 !
51 ! Using Haaland explicit relationship for the initial friction value
52 ! S.E. Haaland 1983 (Source en.Wikipwedia.org)
53 !
54  friction=(-1.8*dlog10(6.9d0/4000.d0+(ksd/3.7d0)**1.11d0))**-2
55 !
56  do
57  ds=dsqrt(friction)
58  dd=2.51d0/(4000.d0*ds)+0.27d0*ksd
59  dfriction=(1.d0/ds+2.d0*dlog10(dd))*2.d0*friction*ds/
60  & (1.d0+2.51d0/(4000.d0*dd))
61  if(dfriction.le.friction*1.d-3) then
62  friction=friction+dfriction
63  exit
64  endif
65  friction=friction+dfriction
66  enddo
67  lambda_turb=friction
68 
69 !
70 ! logarithmic interpolation in the trans laminar turbulent domain
71 !
72  lambda=lambda_kr*(lambda_turb/lambda_kr)
73  & **(log(reynolds/rey_lam_max)/log(rey_turb_min/rey_lam_max))
74 !
75 ! laminar flow
76 ! using Couette-Poiseuille formula
77 ! the form factor for non round section can be found in works such as
78 ! Bohl,W
79 ! "Technische Strömungslehre Stoffeigenschaften von Flüssigkeiten und
80 ! Gasen, hydrostatik,aerostatik,incompressible Strömungen,
81 ! Strömungsmesstechnik
82 ! Vogel Würzburg Verlag 1980
83 !
84  elseif(reynolds.lt.rey_lam_max) then
85  lambda=64.d0/reynolds
86  lambda=form_fact*lambda
87 !
88 ! turbulent
89 !
90  else
91 ! Solving the implicit White-Colebrook equation
92 ! 1/dsqrt(friction)=-2*log10(2.51/(Reynolds*dsqrt(friction)+0.27*Ks))
93 !
94 ! Using Haaland explicit relationship for the initial friction value
95 ! S.E. Haaland 1983 (Source en.Wikipwedia.org)
96 !
97  friction=(-1.8*dlog10(6.9d0/reynolds+(ksd/3.7d0)
98  & **1.11d0))**-2
99 !
100  do
101  ds=dsqrt(friction)
102  dd=2.51d0/(reynolds*ds)+0.27d0*ksd
103  dfriction=(1.d0/ds+2.d0*dlog10(dd))*2.d0*friction*ds/
104  & (1.d0+2.51d0/(reynolds*dd))
105  if(dfriction.le.friction*1.d-3) then
106  friction=friction+dfriction
107  exit
108  endif
109  friction=friction+dfriction
110  enddo
111  lambda=friction
112  endif
113 !
114  call interpol_alfa2(lzd,reynolds,alfa2)
115 !
116  return
117 !
subroutine interpol_alfa2(lzd, reynolds, alfa2)
Definition: interpol_alfa2.f:21
Hosted by OpenAircraft.com, (Michigan UAV, LLC)