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

Go to the source code of this file.

Functions/Subroutines

subroutine extrapolatefluid (nk, iponofa, inofa, inum, vfa, v, ielfa, ithermal, imach, ikappa, xmach, xkappa, shcon, nshcon, ntmat_, ielmat, physcon, mi, iturb, xturb)
 

Function/Subroutine Documentation

◆ extrapolatefluid()

subroutine extrapolatefluid ( integer  nk,
integer, dimension(*)  iponofa,
integer, dimension(2,*)  inofa,
integer, dimension(*)  inum,
real*8, dimension(0:7,*)  vfa,
real*8, dimension(0:4,*)  v,
integer, dimension(4,*)  ielfa,
integer  ithermal,
integer  imach,
integer  ikappa,
real*8, dimension(*)  xmach,
real*8, dimension(*)  xkappa,
real*8, dimension(0:3,ntmat_,*)  shcon,
integer, dimension(*)  nshcon,
integer  ntmat_,
integer, dimension(mi(3),*)  ielmat,
real*8, dimension(*)  physcon,
integer, dimension(*)  mi,
integer  iturb,
real*8, dimension(2,*)  xturb 
)
22 !
23 ! extrapolates the field values at the center of the faces to
24 ! the nodes
25 !
26  implicit none
27 !
28  integer nk,iponofa(*),inofa(2,*),inum(*),ielfa(4,*),i,l,indexf,
29  & iface,ithermal,imach,ikappa,imat,nshcon(*),ntmat_,mi(*),
30  & ielmat(mi(3),*),iturb
31 !
32  real*8 vfa(0:7,*),v(0:4,*),cp,r,xk,xmach(*),xkappa(*),t1l,
33  & shcon(0:3,ntmat_,*),physcon(*),xturb(2,*)
34 !
35  do i=1,nk
36  if(ithermal.eq.0) then
37  do l=1,4
38  v(l,i)=0.d0
39  enddo
40  inum(i)=0
41  indexf=iponofa(i)
42  do
43  if(indexf.eq.0) exit
44  iface=inofa(1,indexf)
45  do l=1,4
46  v(l,i)=v(l,i)+vfa(l,iface)
47  enddo
48  inum(i)=inum(i)+1
49  indexf=inofa(2,indexf)
50  enddo
51  if(inum(i).gt.0) then
52  do l=1,4
53  v(l,i)=v(l,i)/inum(i)
54  enddo
55  endif
56  else
57  do l=0,4
58  v(l,i)=0.d0
59  enddo
60  inum(i)=0
61  indexf=iponofa(i)
62  do
63  if(indexf.eq.0) exit
64  iface=inofa(1,indexf)
65  do l=0,4
66  v(l,i)=v(l,i)+vfa(l,iface)
67  enddo
68  if(imach.eq.1) then
69  t1l=vfa(0,iface)
70  imat=ielmat(1,ielfa(1,iface))
71  r=shcon(3,1,imat)
72  call materialdata_cp_sec(imat,ntmat_,t1l,
73  & shcon,nshcon,cp,physcon)
74  xk=cp/(cp-r)
75  xmach(i)=xmach(i)+dsqrt((vfa(1,iface)**2+
76  & vfa(2,iface)**2+vfa(3,iface)**2)/(xk*r*t1l))
77  endif
78  if(ikappa.eq.1) then
79  xkappa(i)=xkappa(i)+xk
80  endif
81 !
82  inum(i)=inum(i)+1
83  indexf=inofa(2,indexf)
84  enddo
85  if(inum(i).gt.0) then
86  do l=0,4
87  v(l,i)=v(l,i)/inum(i)
88  enddo
89  if(imach.eq.1) xmach(i)=xmach(i)/inum(i)
90  if(ikappa.eq.1) xkappa(i)=xkappa(i)/inum(i)
91  endif
92  endif
93 !
94 ! turbulence output
95 !
96  if(iturb.ne.0) then
97  do l=1,2
98  xturb(l,i)=0.d0
99  enddo
100  indexf=iponofa(i)
101  do
102  if(indexf.eq.0) exit
103  iface=inofa(1,indexf)
104  do l=1,2
105  xturb(l,i)=xturb(l,i)+vfa(l+5,iface)
106  enddo
107  indexf=inofa(2,indexf)
108  enddo
109  if(inum(i).gt.0) then
110  do l=1,2
111  xturb(l,i)=xturb(l,i)/inum(i)
112  enddo
113  endif
114  endif
115  enddo
116 !
117  return
subroutine materialdata_cp_sec(imat, ntmat_, t1l, shcon, nshcon, cp, physcon)
Definition: materialdata_cp_sec.f:20
Hosted by OpenAircraft.com, (Michigan UAV, LLC)