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

Go to the source code of this file.

Functions/Subroutines

subroutine flux (node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, kflag, v, xflow, f, nodef, idirf, df, cp, R, rho, physcon, g, co, dvi, numf, vold, set, shcon, nshcon, rhcon, nrhcon, ntmat_, mi, ider, ttime, time, iaxial)
 

Function/Subroutine Documentation

◆ flux()

subroutine flux ( integer  node1,
integer  node2,
integer  nodem,
integer  nelem,
character*8, dimension(*)  lakon,
integer, dimension(*)  kon,
integer, dimension(*)  ipkon,
integer, dimension(0:3,*)  nactdog,
logical  identity,
integer, dimension(*)  ielprop,
real*8, dimension(*)  prop,
integer  kflag,
real*8, dimension(0:mi(2),*)  v,
real*8  xflow,
real*8  f,
integer, dimension(8)  nodef,
integer, dimension(8)  idirf,
real*8, dimension(8)  df,
real*8  cp,
real*8  R,
real*8  rho,
real*8, dimension(*)  physcon,
real*8, dimension(3)  g,
real*8, dimension(3,*)  co,
real*8  dvi,
integer  numf,
real*8, dimension(0:mi(2),*)  vold,
character*81, dimension(*)  set,
real*8, dimension(0:3,ntmat_,*)  shcon,
integer, dimension(*)  nshcon,
real*8, dimension(0:1,ntmat_,*)  rhcon,
integer, dimension(*)  nrhcon,
integer  ntmat_,
integer, dimension(*)  mi,
integer  ider,
real*8  ttime,
real*8  time,
integer  iaxial 
)
24 !
25 ! gas element routines
26 !
27 ! mass flow input for all gas element routines is the gas
28 ! flow for a 2 degrees segment with the correct sign
29 ! (positive if from node 1 to node2 of the element,
30 ! negative if from node 2 to node1 of the element)
31 !
32  implicit none
33 !
34  logical identity
35  character*8 lakon(*)
36  character*81 set(*)
37 !
38  integer nelem,nactdog(0:3,*),node1,node2,nodem,numf,
39  & ielprop(*),nodef(8),idirf(8),kflag,ipkon(*),kon(*),
40  & nshcon(*), nrhcon(*),ntmat_,mi(*),ider,iaxial
41 !
42  real*8 prop(*),v(0:mi(2),*),xflow,f,df(8),r,cp,physcon(*),rho,
43  & g(3),co(3,*),dvi,vold(0:mi(2),*),shcon(0:3,ntmat_,*),
44  & rhcon(0:1,ntmat_,*),ttime,time
45 !
46  if((lakon(nelem)(2:4).eq.'ATR')
47  & .or.(lakon(nelem)(2:4).eq.'RTA')) then
48 !
49 ! absolute to relative system or vice versa
50 !
51  call absolute_relative(node1,node2,nodem,nelem,lakon,kon,ipkon,
52  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
53  & nodef,idirf,df,cp,r,physcon,numf,set,mi,ttime,time,iaxial)
54 !
55  elseif(lakon(nelem)(2:8).eq.'ACCTUBO') then
56 !
57 ! proprietary
58 !
59  call acctube_one(node1,node2,nodem,nelem,lakon,kon,ipkon,
60  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
61  & nodef,idirf,df,cp,r,physcon,dvi,numf,set,mi,ider,
62  & ttime,time,iaxial)
63 !
64  elseif(lakon(nelem)(2:8).eq.'ACCTUBE') then
65 !
66 ! proprietary
67 !
68  call acctube(node1,node2,nodem,nelem,lakon,kon,ipkon,
69  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
70  & nodef,idirf,df,cp,r,physcon,dvi,numf,set,mi,ider,
71  & ttime,time,iaxial)
72 !
73  elseif(lakon(nelem)(2:6).eq.'CARBS') then
74 !
75 ! carbon seal
76 !
77  call carbon_seal(node1,node2,nodem,nelem,lakon,
78  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
79  & nodef,idirf,df,r,physcon,dvi,numf,set,mi,ttime,time,iaxial)
80 !
81  elseif(lakon(nelem)(2:5).eq.'CHAR') then
82 !
83 ! characteristic
84 !
85  call characteristic(node1,node2,nodem,nelem,lakon,kon,ipkon,
86  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
87  & nodef,idirf,df,cp,r,physcon,dvi,numf,set,
88  & mi,ttime,time,iaxial)
89 !
90  elseif(lakon(nelem)(2:5).eq.'CROS') then
91 !
92 ! cross split
93 !
94  call cross_split(node1,node2,nodem,nelem,lakon,kon,ipkon,
95  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
96  & nodef,idirf,df,cp,r,physcon,numf,set,mi,ider,ttime,time,
97  & iaxial)
98 !
99 ! proprietary
100 !
101  elseif(lakon(nelem)(2:5).eq.'FDPF') then
102  call free_disc_pumping(node1,node2,nodem,nelem,lakon,kon,ipkon,
103  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
104  & nodef,idirf,df,cp,r,physcon,dvi,numf,set,shcon,
105  & nshcon,rhcon,nrhcon,ntmat_,co,vold,mi,ttime,time,iaxial)
106 !
107 ! proprietary
108 !
109  elseif(lakon(nelem)(2:5).eq.'FCVF') then
110  call free_convection(node1,node2,nodem,nelem,lakon,kon,ipkon,
111  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
112  & nodef,idirf,df,cp,r,physcon,dvi,numf,set,shcon,
113  & nshcon,rhcon,nrhcon,ntmat_,co,vold,mi,ttime,time,iaxial)
114 !
115 ! gas pipe fanno
116 !
117  elseif(lakon(nelem)(2:5).eq.'GAPF') then
118 !
119  call gaspipe_fanno(node1,node2,nodem,nelem,lakon,kon,ipkon,
120  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
121  & nodef,idirf,df,cp,r,physcon,dvi,numf,set,shcon,
122  & nshcon,rhcon,nrhcon,ntmat_,co,vold,mi,ttime,time,iaxial)
123 !
124 ! straight and stepped labyrinth
125 !
126  elseif(lakon(nelem)(2:4).eq.'LAB') then
127 !
128  call labyrinth(node1,node2,nodem,nelem,lakon,
129  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
130  & nodef,idirf,df,cp,r,physcon,co,dvi,numf,vold,set,
131  & kon,ipkon,mi,ttime,time,iaxial)
132 !
133 ! liquid pipes including loss elements (hydraulic elements)
134 !
135  elseif(lakon(nelem)(2:5).eq.'LIPI') then
136 !
137  call liquidpipe(node1,node2,nodem,nelem,lakon,nactdog,identity,
138  & ielprop,prop,kflag,v,xflow,f,nodef,idirf,df,
139  & rho,g,co,dvi,numf,vold,mi,ipkon,kon,set,ttime,time,
140  & iaxial)
141 !
142 ! liquid channel (flow with free surface) including all loss elements
143 !
144  elseif(lakon(nelem)(2:5).eq.'LICH') then
145 !
146  call liquidchannel(node1,node2,nodem,nelem,lakon,nactdog,
147  & identity,ielprop,prop,kflag,v,xflow,f,nodef,idirf,df,
148  & rho,g,co,dvi,numf,mi,ipkon,kon)
149 !
150 ! liquid pipes including loss elements (types derived from their
151 ! compressible equivalent)
152 !
153  elseif(lakon(nelem)(2:3).eq.'LP') then
154 !
155  call liquidpipe(node1,node2,nodem,nelem,lakon,nactdog,identity,
156  & ielprop,prop,kflag,v,xflow,f,nodef,idirf,df,
157  & rho,g,co,dvi,numf,vold,mi,ipkon,kon,set,ttime,time,
158  & iaxial)
159 !
160 ! liquid pump
161 !
162  elseif(lakon(nelem)(2:5).eq.'LIPU') then
163 !
164  call liquidpump(node1,node2,nodem,nelem,nactdog,identity,
165  & ielprop,prop,kflag,v,xflow,f,nodef,idirf,df,
166  & rho,g,co,numf,mi,ttime,time,iaxial)
167 !
168 ! element that fixes the mass flow as a specific percentage of the
169 ! sum of the massflow of up to 10 other elements
170 !
171  elseif(lakon(nelem)(2:5).eq.'MFPC') then
172  call massflow_percent(node1,node2,nodem,nelem,lakon,kon,ipkon,
173  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
174  & nodef,idirf,df,cp,r,physcon,dvi,numf,set,shcon,
175  & nshcon,rhcon,nrhcon,ntmat_,co,vold,mi,ttime,time,iaxial)
176 !
177 ! Moehring
178 !
179  elseif(lakon(nelem)(2:4).eq.'MRG') then
180 !
181  call moehring(node1,node2,nodem,nelem,lakon,kon,ipkon,
182  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
183  & nodef,idirf,df,cp,r,dvi,numf,set,mi,ttime,time,iaxial)
184 !
185 ! Bleed tapping, orifice and pre-swirl nozzle
186 !
187  elseif(lakon(nelem)(2:3).eq.'OR') then
188 !
189  call orifice(node1,node2,nodem,nelem,lakon,kon,ipkon,
190  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
191  & nodef,idirf,df,cp,r,physcon,dvi,numf,set,co,vold,mi,
192  & ttime,time,iaxial)
193 !
194 ! proprietary
195 !
196  elseif(lakon(nelem)(2:4).eq.'RCV') then
197 !
198  call rcavi(node1,node2,nodem,nelem,lakon,kon,ipkon,
199  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
200  & nodef,idirf,df,cp,r,dvi,numf,set,mi,ttime,time,iaxial)
201 !
202 ! proprietary
203 !
204  elseif(lakon(nelem)(2:3).eq.'RO') then
205 !
206  call rcavi2(node1,node2,nodem,nelem,lakon,kon,ipkon,
207  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
208  & nodef,idirf,df,cp,r,dvi,numf,set,mi,ttime,time,iaxial)
209 !
210 ! restrictors
211 !
212  elseif(((lakon(nelem)(2:3).eq.'RE').or.
213  & (lakon(nelem)(2:3).eq.'RB')).and.
214  & (lakon(nelem)(2:8).ne.'REBRSI1').and.
215  & (lakon(nelem)(2:8).ne.'REBRSI2')) then
216 !
217  call restrictor(node1,node2,nodem,nelem,lakon,kon,ipkon,
218  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
219  & nodef,idirf,df,cp,r,physcon,dvi,numf,set,shcon,
220  & nshcon,rhcon,nrhcon,ntmat_,mi,ttime,time,iaxial,
221  & co,vold)
222 !
223 ! proprietary
224 !
225  elseif(lakon(nelem)(2:5).eq.'RIMS') then
226 !
227  call rimseal(node1,node2,nodem,nelem,lakon,kon,ipkon,
228  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
229  & nodef,idirf,df,cp,r,physcon,dvi,numf,set,mi,
230  & ttime,time,iaxial,co,vold)
231 !
232 ! proprietary
233 !
234  elseif(lakon(nelem)(2:6).eq.'SPUMP') then
235 !
236  call scavenge_pump(node1,node2,nodem,nelem,lakon,kon,ipkon,
237  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
238  & nodef,idirf,df,cp,r,physcon,dvi,numf,set,ntmat_,mi,
239  & ttime,time,iaxial)
240 !
241 ! branch split Idelchik2
242 !
243  elseif(lakon(nelem)(2:8).eq.'REBRSI2') then
244 !
245  call tee(node1,node2,nodem,nelem,lakon,kon,ipkon,
246  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
247  & nodef,idirf,df,cp,r,physcon,numf,set,mi,ider,ttime,time,
248  & iaxial)
249 !
250 ! user element
251 !
252  elseif(lakon(nelem)(2:2).eq.'U') then
253 !
254  call user_network_element(node1,node2,nodem,nelem,lakon,kon,
255  & ipkon,nactdog,identity,ielprop,prop,kflag,v,xflow,f,
256  & nodef,idirf,df,cp,r,physcon,dvi,numf,set,co,vold,mi,
257  & ttime,time,iaxial)
258 !
259 ! vortex
260 !
261  elseif(lakon(nelem)(2:3).eq.'VO') then
262 !
263  call vortex(node1,node2,nodem,nelem,lakon,kon,ipkon,
264  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
265  & nodef,idirf,df,cp,r,numf,set,mi,ttime,time,iaxial)
266 !
267 ! branch split Idelchik1
268 !
269  elseif(lakon(nelem)(2:8).eq.'REBRSI1') then
270 !
271  call wye(node1,node2,nodem,nelem,lakon,kon,ipkon,
272  & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
273  & nodef,idirf,df,cp,r,physcon,numf,set,mi,ider,ttime,time,
274  & iaxial)
275 !
276  else
277  identity=.true.
278 !
279  endif
280 !
281  return
subroutine free_disc_pumping(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, r, physcon, dvi, numf, set, shcon, nshcon, rhcon, nrhcon, ntmat_, co, vold, mi, ttime, time, iaxial)
Definition: free_disc_pumping.f:23
subroutine liquidpump(node1, node2, nodem, nelem, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, rho, g, co, numf, mi, ttime, time, iaxial)
Definition: liquidpump.f:22
subroutine scavenge_pump(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, r, physcon, dvi, numf, set, ntmat_, mi, ttime, time, iaxial)
Definition: scavenge_pump.f:22
subroutine cross_split(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, r, physcon, numf, set, mi, ider, ttime, time, iaxial)
Definition: cross_split.f:23
subroutine characteristic(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, r, physcon, dvi, numf, set, mi, ttime, time, iaxial)
Definition: characteristic.f:24
subroutine df(x, u, uprime, rpar, nev)
Definition: subspace.f:133
subroutine liquidpipe(node1, node2, nodem, nelem, lakon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, rho, g, co, dvi, numf, vold, mi, ipkon, kon, set, ttime, time, iaxial)
Definition: liquidpipe.f:23
subroutine user_network_element(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, R, physcon, dvi, numf, set, co, vold, mi, ttime, time, iaxial)
Definition: user_network_element.f:23
subroutine liquidchannel(node1, node2, nodem, nelem, lakon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, rho, g, co, dvi, numf, mi, ipkon, kon)
Definition: liquidchannel.f:22
subroutine labyrinth(node1, node2, nodem, nelem, lakon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, R, physcon, co, dvi, numf, vold, set, kon, ipkon, mi, ttime, time, iaxial)
Definition: labyrinth.f:22
subroutine rcavi(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, R, physcon, dvi, numf, set, mi, ttime, time, iaxial)
Definition: rcavi.f:22
subroutine absolute_relative(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, R, physcon, numf, set, mi, ttime, time, iaxial)
Definition: absolute_relative.f:23
subroutine free_convection(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, r, physcon, dvi, numf, set, shcon, nshcon, rhcon, nrhcon, ntmat_, co, vold, mi, ttime, time, iaxial)
Definition: free_convection.f:23
subroutine moehring(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, R, dvi, numf, set, mi, ttime, time, iaxial)
Definition: moehring.f:22
subroutine tee(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, r, physcon, numf, set, mi, ider, ttime, time, iaxial)
Definition: tee.f:22
subroutine wye(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, r, physcon, numf, set, mi, ider, ttime, time, iaxial)
Definition: wye.f:22
subroutine vortex(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, R, numf, set, mi, ttime, time, iaxial)
Definition: vortex.f:22
subroutine rimseal(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, R, physcon, dvi, numf, set, mi, ttime, time, iaxial, co, vold)
Definition: rimseal.f:22
subroutine restrictor(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, r, physcon, dvi, numf, set, shcon, nshcon, rhcon, nrhcon, ntmat_, mi, ttime, time, iaxial, co, vold)
Definition: restrictor.f:24
subroutine massflow_percent(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, r, physcon, dvi, numf, set, shcon, nshcon, rhcon, nrhcon, ntmat_, co, vold, mi, ttime, time, iaxial)
Definition: massflow_percent.f:23
subroutine acctube(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, r, physcon, dvi, numf, set, mi, ider, ttime, time, iaxial)
Definition: acctube.f:23
subroutine acctube_one(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, r, physcon, dvi, numf, set, mi, ider, ttime, time, iaxial)
Definition: acctube_one.f:23
subroutine rcavi2(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, R, physcon, dvi, numf, set, mi, ttime, time, iaxial)
Definition: rcavi2.f:22
subroutine carbon_seal(node1, node2, nodem, nelem, lakon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, R, physcon, dvi, numf, set, mi, ttime, time, iaxial)
Definition: carbon_seal.f:22
subroutine gaspipe_fanno(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, r, physcon, dvi, numf, set, shcon, nshcon, rhcon, nrhcon, ntmat_, co, vold, mi, ttime, time, iaxial)
Definition: gaspipe_fanno.f:24
subroutine orifice(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, R, physcon, dvi, numf, set, co, vold, mi, ttime, time, iaxial)
Definition: orifice.f:23
Hosted by OpenAircraft.com, (Michigan UAV, LLC)