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

Go to the source code of this file.

Functions/Subroutines

real *8 function calc_residual_cross_split (pt1, Tt1, xflow1, xflow2, pt2, Tt2, ichan_num, A1, A2, A_s, dh1, dh2, alpha, zeta_fac, kappa, R, ider, iflag)
 

Function/Subroutine Documentation

◆ calc_residual_cross_split()

real*8 function calc_residual_cross_split ( real*8  pt1,
real*8  Tt1,
real*8  xflow1,
real*8  xflow2,
real*8  pt2,
real*8  Tt2,
integer  ichan_num,
real*8  A1,
real*8  A2,
real*8  A_s,
real*8  dh1,
real*8  dh2,
real*8  alpha,
real*8  zeta_fac,
real*8  kappa,
real*8  R,
integer  ider,
integer  iflag 
)
24 !
25  implicit none
26 !
27  integer icase,ichan_num,ider,icrit1,icrit2,iflag,ier
28 !
29  real*8
30 ! In- and Output
31  &f,r,
32 !
33 ! Kappa stuff
34  &kappa,km1,kp1,
35 !
36  &pt1,pt2,tt1,tt2,xflow1,xflow2,
37 !
38  &pt2_lim,
39 !
40  &zeta,
41 !
42  &a1,a2,
43 !
44  &ts0,ts1,ts2,dh1,dh2,alpha,q_crit,pspt_crit,q0,q1,q2,pspt0,
45  &pspt1,pspt2,w1,w2,w1w2,w2w1,pi,z2d390,z1p090,z60,z90,hq,m1,m2,
46  &zeta_fac,xflow_s,q_s,ts_s,pspt_s,w_s,wsw1,a_s,asa1,vsv1
47 !
48  real*8 table_zeta(2,10)
49 !
50  pi=4.d0*datan(1.d0)
51 !
52  icrit1=0
53  icrit2=0
54 !
55 ! setting icase (always adiabatic)
56 !
57  icase=0;
58 !
59  km1=kappa-1.d0
60  kp1=kappa+1.d0
61  q_crit=dsqrt(kappa/r)*
62  & (1+0.5d0*(kappa-1))**(-0.5d0*(kappa+1)/(kappa-1))
63  pspt_crit=(2./(kappa+1.))**(kappa/(kappa-1.))
64 !
65  q0=xflow1*dsqrt(tt1)/pt1/a1
66  q1=xflow2*dsqrt(tt1)/pt1/a2
67  if(q1.ge.q_crit) then
68  q1=q_crit
69  icrit1=1
70  write(*,*)'*WARNING in Cross Split:'
71  write(*,*)'Critical conditions at 1'
72  endif
73  q2=xflow2*dsqrt(tt1)/pt2/a2
74  if(q2.ge.q_crit) then
75  q2=q_crit
76  icrit2=1
77  write(*,*)'*WARNING in Cross Split:'
78  write(*,*)'Critical conditions at 2'
79  endif
80 !
81 ! Flow velocity at inlet
82  call ts_calc(xflow1,tt1,pt1,kappa,r,a1,ts0,icase)
83  pspt0=(ts0/tt1)**(kappa/(kappa-1))
84  call wpi(w1, pspt0, q0,
85  & dsqrt(tt1),kappa,r)
86 !
87 ! Flow velocity at outlet
88  call ts_calc(xflow2,tt1,pt1,kappa,r,a2,ts1,icase)
89  pspt1=(ts1/tt1)**(kappa/(kappa-1))
90  call wpi(w2, pspt1, q1,
91  & dsqrt(tt2),kappa,r)
92 !
93  w2w1=w2/w1
94  w1w2=w1/w2
95 !
96 ! Main branch
97  if(ichan_num.eq.1) then
98 !
99 ! Zeta as in Calculix
100  zeta=0.4d0*(1-w2w1)**2
101 !
102  zeta=zeta*(w1w2)**2
103 !
104 ! First branch
105  elseif((ichan_num.eq.2).or.(ichan_num.eq.3)) then
106  hq=dh2/dh1
107  if(alpha.le.60.or.hq.le.2.d0/3.d0) then
108  zeta=0.95d0*((w2w1-2d0*dcos(alpha*pi/180))
109  & *w2w1+1.d0)
110  zeta=zeta*(w1w2)**2
111  else
112  z2d390=0.95d0*((w2w1-2d0*dcos(90.d0*pi/180))
113  & *w2w1+1.d0)
114  z1p090=0.95*(0.34d0+w2w1**2)
115  z90=z2d390+(3*hq-2.d0)*(z1p090-z2d390)
116  z60=0.95d0*((w2w1-2d0*dcos(60.d0*pi/180))
117  & *w2w1+1.d0)
118  zeta=z60+(alpha/30.d0-2.d0)*(z90-z60)
119  zeta=zeta*(w1w2)**2
120  endif
121 !
122  endif
123 !
124 ! zeta_fac for side branches are all =1
125 ! main branch can be set by the user in ACC Designer
126  zeta=zeta*zeta_fac
127 !
128  if(icrit2.ne.1) then
129  if(icrit1.ne.1) then
130  f=pt2-pt1*pspt1**zeta
131  else
132  f=xflow2*dsqrt(tt1)/pt1/a2-q_crit
133  endif
134  else
135  f=xflow2*dsqrt(tt1)/pt2/a2-q_crit
136  endif
137 !
138  if(iflag.eq.3) then
139 !
140  write(1,57)' zeta= ',zeta
141  57 format(1x,a,f9.4)
142 !
143  else if (iflag.eq.4) then
144 !
145 ! Calculate Mach numbers
146  call machpi(m1,pspt0,kappa,r)
147  call ts_calc(xflow2,tt2,pt2,kappa,r,a2,ts2,icase)
148 ! Pressure ratio
149  pspt2=(ts2/tt2)**(kappa/(kappa-1))
150  call machpi(m2,pspt2,kappa,r)
151 
152  write(1,80)'Inlet: Tt1= ',tt1,
153  & ', pt1= ',pt1,', M1= ',m1
154 
155  write(1,77)'mass flow = ',xflow2,', kappa = ',kappa,
156  & ', zeta= ',zeta
157 
158  write(1,80)'Outlet: Tt2= ',tt2,
159  & ', pt2= ',pt2,', M2= ',m2
160 
161  80 format(3x,a,f10.6,a,f10.2,a,f10.6)
162  77 format(3x,a,f10.6,a,f10.2,a,f10.6)
163 
164  endif
165 
166 !
168 !
169  return
subroutine wpi(W, PI, Q, SQTT, kappa, RGAS)
Definition: wpi.f:23
subroutine ts_calc(xflow, Tt, Pt, kappa, r, A, Ts, icase)
Definition: ts_calc.f:20
real *8 function calc_residual_cross_split(pt1, Tt1, xflow1, xflow2, pt2, Tt2, ichan_num, A1, A2, A_s, dh1, dh2, alpha, zeta_fac, kappa, R, ider, iflag)
Definition: calc_residual_cross_split.f:24
subroutine machpi(MACH, PI, kappa, rgas)
Definition: machpi.f:23
Hosted by OpenAircraft.com, (Michigan UAV, LLC)