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

Go to the source code of this file.

Functions/Subroutines

subroutine limit_case_calc (a2, pt1, Tt2, xflow, zeta, r, kappa, pt2_lim, M2)
 

Function/Subroutine Documentation

◆ limit_case_calc()

subroutine limit_case_calc ( real*8  a2,
real*8  pt1,
real*8  Tt2,
real*8  xflow,
real*8  zeta,
real*8  r,
real*8  kappa,
real*8  pt2_lim,
real*8  M2 
)
21 !
22 ! For restrictor elements A1<A2
23 ! if A1 is critical, pt2 can be as low as possible without any effect on the flow
24 ! it is necessary to compute pt2_lim which satisfies the element equation
25 !
26 ! xflow*dsqrt(R*Tt1)/(A1*Pt1*dsqrt(kappa)-dsqrt(2/(kappa-1)*(Pt1/Pt2)
27 ! **((kappa-1)-1))/(zeta*kappa)))/(Pt1/Pt2)**((kappa+1)/(2*zeta*kappa))=0
28 !
29 ! **Changed 15.11.2007**
30 ! since we are in the case A1<=A2
31 ! Pt1/Pt2=(1+0.5*(k-1)M1**2)**(zeta*kappa/(kappa-1))
32 ! A1 is critical M1=1 which simplifies the previous equation
33 ! (Pt1/Pt2)_crit=(1+0.5*(k-1))**(zeta*kappa/(kappa-1))
34 ! It is then possible to determine pt2_lim knowing zeta and Pt1
35 !
36 ! Once Pt2_lim is calculated it is possible in turn to calculate
37 ! the corresponding Mach number M2 satisfying the flow equation
38 ! for section A2 in terms of M2
39 ! xflow*dsqrt(R*Tt2)/(A2*Pt2*dsqrt(kappa))-M2/(1+(kappa-1)/2*M2**2)
40 ! **(0.5*(kappa+1)/(kappa-1))
41 !
42 ! author: Yannick Muller
43 !
44  implicit none
45 !
46  integer i
47 !
48  real*8 pt1,tt2,xflow,zeta,r,kappa,pt2_lim,m2,qred,expon1,
49  & expon2,root,a2,f,df,pt2,km1,kp1,pt1pt2
50 !
51 ! **changed 15.11.2006**
52  pt2=0.99*pt1
53  pt1pt2=pt1/pt2
54  km1=kappa-1
55  kp1=kappa+1
56  expon1=-0.5*(kp1)/(zeta*kappa)
57  expon2=(km1)/(zeta*kappa)
58  root=2/(km1)*((pt1pt2)**expon2-1.d0)
59  qred=dsqrt(kappa/r)*(pt1pt2)**(-0.5d0*kp1/(kappa*zeta))
60  & *dsqrt(2.d0/km1*((pt1pt2)**(km1/(kappa*zeta))-1d0))
61 !
62  pt2_lim=pt1/(1+0.5d0*(km1))**(zeta*kappa/(km1))
63 
64 !
65 ! M2_lim calculation
66 !
67  m2=0.5
68  expon1=-0.5*(kp1)/(km1)
69  qred=dabs(xflow)*dsqrt(r*tt2)/(a2*pt2_lim*dsqrt(kappa))
70  if(qred.gt.((1+0.5d0*(km1))**expon1)) then
71  qred=(1+0.5d0*(km1))**expon1
72  endif
73 !
74  do
75  root=(1+0.5d0*(km1)*m2**2)
76  f=qred-m2*root**(expon1)
77 !
78  df=root**expon1*(-1d0+0.5*(kp1)*m2**2*root**-1)
79 !
80  if(dabs(-f/df).le.1e-6) then
81  m2=m2-f/df
82 
83  exit
84  endif
85 !
86  m2=m2-f/df
87  enddo
88 !
89  return
subroutine df(x, u, uprime, rpar, nev)
Definition: subspace.f:133
Hosted by OpenAircraft.com, (Michigan UAV, LLC)