Ticket #7: HeatExchangerDetailed.mso

File HeatExchangerDetailed.mso, 68.0 KB (added by Paula Bettio Staudt, 16 years ago)
Line 
1 
2#--------------------------------------------------------------------
3# Author: Gerson Balbueno Bicca
4# $Id: HeatExchangerDetailed.mso 26 2006-09-19 20:23:27Z bicca $
5#--------------------------------------------------------------------
6
7using "HEX_Engine";
8
9#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
10#       Basic Model for Detailed Heat Exchangers
11#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
12
13Model HeatExchangerDetailed_Basic
14       
15PARAMETERS
16
17ext PP          as CalcObject   (Brief="External Physical Properties");
18ext HE          as CalcObject   (Brief="STHE Calculations",     File="heatex");
19ext NComp       as Integer      (Brief="Number of Components");
20  M(NComp)      as molweight    (Brief="Component Mol Weight");
21       
22VARIABLES
23in  Inlet               as Inlet_Main_Stream;   
24out Outlet              as Outlet_Main_Stream; 
25        Properties      as Main_Properties;             
26        Details                 as Details_Main;
27        Tubes                   as Tube_Side_Main;     
28        Shell                   as Shell_Side_Main;
29        Resistances     as Main_Resistances;
30        Baffles         as Baffles_Main;
31
32SET
33        M   = PP.MolecularWeight();
34
35EQUATIONS
36
37#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
38#                                               Properties                                                                      #
39#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
40
41"HotStream Stream Average Temperature"
42        Properties.Hot.Average.T = 0.5*Inlet.Hot.T + 0.5*Outlet.Hot.T;
43       
44"Cold Stream Average Temperature"
45        Properties.Cold.Average.T = 0.5*Inlet.Cold.T + 0.5*Outlet.Cold.T;
46       
47"HotStream Stream Average Pressure"
48        Properties.Hot.Average.P = 0.5*Inlet.Hot.P+0.5*Outlet.Hot.P;
49       
50"Cold Stream Average Pressure"
51        Properties.Cold.Average.P = 0.5*Inlet.Cold.P+0.5*Outlet.Cold.P;
52       
53"Hot Stream Average Molecular Weight"
54        Properties.Hot.Average.Mw = sum(M*Inlet.Hot.z);
55
56"Cold Stream Average Molecular Weight"
57        Properties.Cold.Average.Mw = sum(M*Inlet.Cold.z);
58       
59
60if Inlet.Cold.v equal 0
61       
62        then   
63       
64"Heat Capacity Cold Stream"
65        Properties.Cold.Average.Cp      =       PP.LiquidCp(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z);
66        Properties.Cold.Inlet.Cp        =       PP.LiquidCp(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z);
67        Properties.Cold.Outlet.Cp       =       PP.LiquidCp(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z);
68
69"Mass Density Cold Stream"
70        Properties.Cold.Average.rho =   PP.LiquidDensity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z);
71        Properties.Cold.Inlet.rho       =       PP.LiquidDensity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z);
72        Properties.Cold.Outlet.rho      =       PP.LiquidDensity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z);
73
74"Viscosity Cold Stream"
75        Properties.Cold.Average.Mu      =       PP.LiquidViscosity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z);
76        Properties.Cold.Inlet.Mu        =       PP.LiquidViscosity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z);
77        Properties.Cold.Outlet.Mu       =       PP.LiquidViscosity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z);
78
79"Conductivity Cold Stream"
80        Properties.Cold.Average.K       =       PP.LiquidThermalConductivity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z);
81        Properties.Cold.Inlet.K         =       PP.LiquidThermalConductivity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z);
82        Properties.Cold.Outlet.K        =       PP.LiquidThermalConductivity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z);
83
84"Heat Capacity Cold Stream"
85        Properties.Cold.Wall.Cp         =       PP.LiquidCp(Properties.Cold.Wall.Twall,Properties.Cold.Average.P,Inlet.Cold.z);
86       
87"Viscosity Cold Stream"
88        Properties.Cold.Wall.Mu         =       PP.LiquidViscosity(Properties.Cold.Wall.Twall,Properties.Cold.Average.P,Inlet.Cold.z);
89
90"Conductivity Cold Stream"
91        Properties.Cold.Wall.K          =       PP.LiquidThermalConductivity(Properties.Cold.Wall.Twall,Properties.Cold.Average.P,Inlet.Cold.z);
92
93
94        else
95
96"Heat Capacity Cold Stream"
97        Properties.Cold.Average.Cp      =       PP.VapourCp(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z);
98        Properties.Cold.Inlet.Cp        =       PP.VapourCp(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z);
99        Properties.Cold.Outlet.Cp       =       PP.VapourCp(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z);
100
101"Mass Density Cold Stream"
102        Properties.Cold.Average.rho =   PP.VapourDensity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z);
103        Properties.Cold.Inlet.rho       =       PP.VapourDensity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z);
104        Properties.Cold.Outlet.rho      =       PP.VapourDensity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z);
105
106"Viscosity Cold Stream"
107        Properties.Cold.Average.Mu      =       PP.VapourViscosity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z);
108        Properties.Cold.Inlet.Mu        =       PP.VapourViscosity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z);
109        Properties.Cold.Outlet.Mu       =       PP.VapourViscosity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z);
110
111"Conductivity Cold Stream"
112        Properties.Cold.Average.K       =       PP.VapourThermalConductivity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z);
113        Properties.Cold.Inlet.K         =       PP.VapourThermalConductivity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z);
114        Properties.Cold.Outlet.K        =       PP.VapourThermalConductivity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z);
115       
116"Heat Capacity Cold Stream"
117        Properties.Cold.Wall.Cp         =       PP.VapourCp(Properties.Cold.Wall.Twall,Properties.Cold.Average.P,Inlet.Cold.z);
118
119
120"Viscosity Cold Stream"
121        Properties.Cold.Wall.Mu         =       PP.VapourViscosity(Properties.Cold.Wall.Twall,Properties.Cold.Average.P,Inlet.Cold.z);
122
123"Conductivity Cold Stream"
124        Properties.Cold.Wall.K          =       PP.VapourThermalConductivity(Properties.Cold.Wall.Twall,Properties.Cold.Average.P,Inlet.Cold.z);
125       
126       
127       
128end
129
130if Inlet.Hot.v equal 0
131
132        then
133
134"Heat Capacity Hot Stream"
135        Properties.Hot.Average.Cp       =               PP.LiquidCp(Properties.Hot.Average.T,Properties.Hot.Average.P,Inlet.Hot.z);
136        Properties.Hot.Inlet.Cp         =               PP.LiquidCp(Inlet.Hot.T,Inlet.Hot.P,Inlet.Hot.z);
137        Properties.Hot.Outlet.Cp        =               PP.LiquidCp(Outlet.Hot.T,Outlet.Hot.P,Outlet.Hot.z);
138
139"Mass Density Hot Stream"
140        Properties.Hot.Average.rho      =               PP.LiquidDensity(Properties.Hot.Average.T,Properties.Hot.Average.P,Inlet.Hot.z);
141        Properties.Hot.Inlet.rho        =               PP.LiquidDensity(Inlet.Hot.T,Inlet.Hot.P,Inlet.Hot.z);
142        Properties.Hot.Outlet.rho       =               PP.LiquidDensity(Outlet.Hot.T,Outlet.Hot.P,Outlet.Hot.z);
143
144"Viscosity Hot Stream"
145        Properties.Hot.Average.Mu       =               PP.LiquidViscosity(Properties.Hot.Average.T,Properties.Hot.Average.P,Inlet.Hot.z);     
146        Properties.Hot.Inlet.Mu         =               PP.LiquidViscosity(Inlet.Hot.T,Inlet.Hot.P,Inlet.Hot.z);       
147        Properties.Hot.Outlet.Mu        =               PP.LiquidViscosity(Outlet.Hot.T,Outlet.Hot.P,Outlet.Hot.z);     
148
149"Conductivity Hot Stream"
150        Properties.Hot.Average.K        =       PP.LiquidThermalConductivity(Properties.Hot.Average.T,Properties.Hot.Average.P,Inlet.Hot.z);   
151        Properties.Hot.Inlet.K  =               PP.LiquidThermalConductivity(Inlet.Hot.T,Inlet.Hot.P,Inlet.Hot.z);     
152        Properties.Hot.Outlet.K         =       PP.LiquidThermalConductivity(Outlet.Hot.T,Outlet.Hot.P,Outlet.Hot.z);   
153
154"Heat Capacity Hot Stream"
155        Properties.Hot.Wall.Cp          =       PP.LiquidCp(Properties.Hot.Wall.Twall,Properties.Hot.Average.P,Inlet.Hot.z);
156
157"Viscosity Hot Stream"
158        Properties.Hot.Wall.Mu          =       PP.LiquidViscosity(Properties.Hot.Wall.Twall,Properties.Hot.Average.P,Inlet.Hot.z);     
159
160"Conductivity Hot Stream"
161        Properties.Hot.Wall.K           =       PP.LiquidThermalConductivity(Properties.Hot.Wall.Twall,Properties.Hot.Average.P,Inlet.Hot.z);   
162       
163
164        else
165
166"Heat Capacity Hot Stream"
167        Properties.Hot.Average.Cp       =               PP.VapourCp(Properties.Hot.Average.T,Properties.Hot.Average.P,Inlet.Hot.z);
168        Properties.Hot.Inlet.Cp         =               PP.VapourCp(Inlet.Hot.T,Inlet.Hot.P,Inlet.Hot.z);
169        Properties.Hot.Outlet.Cp        =               PP.VapourCp(Outlet.Hot.T,Outlet.Hot.P,Outlet.Hot.z);
170
171"Mass Density Hot Stream"
172        Properties.Hot.Average.rho      =               PP.VapourDensity(Properties.Hot.Average.T,Properties.Hot.Average.P,Inlet.Hot.z);
173        Properties.Hot.Inlet.rho        =               PP.VapourDensity(Inlet.Hot.T,Inlet.Hot.P,Inlet.Hot.z);
174        Properties.Hot.Outlet.rho       =               PP.VapourDensity(Outlet.Hot.T,Outlet.Hot.P,Outlet.Hot.z);
175
176"Viscosity Hot Stream"
177        Properties.Hot.Average.Mu       =               PP.VapourViscosity(Properties.Hot.Average.T,Properties.Hot.Average.P,Inlet.Hot.z);
178        Properties.Hot.Inlet.Mu         =               PP.VapourViscosity(Inlet.Hot.T,Inlet.Hot.P,Inlet.Hot.z);
179        Properties.Hot.Outlet.Mu        =               PP.VapourViscosity(Outlet.Hot.T,Outlet.Hot.P,Outlet.Hot.z);
180
181"Conductivity Hot Stream"
182        Properties.Hot.Average.K        =       PP.VapourThermalConductivity(Properties.Hot.Average.T,Properties.Hot.Average.P,Inlet.Hot.z);   
183        Properties.Hot.Inlet.K  =               PP.VapourThermalConductivity(Inlet.Hot.T,Inlet.Hot.P,Inlet.Hot.z);     
184        Properties.Hot.Outlet.K         =       PP.VapourThermalConductivity(Outlet.Hot.T,Outlet.Hot.P,Outlet.Hot.z);   
185
186"Heat Capacity Hot Stream"
187        Properties.Hot.Wall.Cp  =       PP.VapourCp(Properties.Hot.Wall.Twall,Properties.Hot.Average.P,Inlet.Hot.z);
188
189"Viscosity Hot Stream"
190        Properties.Hot.Wall.Mu  =       PP.VapourViscosity(Properties.Hot.Wall.Twall,Properties.Hot.Average.P,Inlet.Hot.z);
191
192"Conductivity Hot Stream"
193        Properties.Hot.Wall.K   =       PP.VapourThermalConductivity(Properties.Hot.Wall.Twall,Properties.Hot.Average.P,Inlet.Hot.z);   
194
195
196end
197
198#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
199#                                       Thermal Details                                                                 #
200#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
201
202"Hot Stream Heat Capacity"
203        Details.Ch =Inlet.Hot.F*Properties.Hot.Average.Cp;
204       
205"Cold Stream Heat Capacity"
206        Details.Cc =Inlet.Cold.F*Properties.Cold.Average.Cp;
207       
208"Minimum Heat Capacity"
209        Details.Cmin  = min([Details.Ch,Details.Cc]);
210       
211"Maximum Heat Capacity"
212        Details.Cmax  = max([Details.Ch,Details.Cc]);
213
214"Heat Capacity Ratio"
215        Details.Cr    = Details.Cmin/Details.Cmax;
216
217#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
218#                                       Energy Balance
219#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
220
221"Energy Balance Hot Stream"
222        Details.Q = Inlet.Hot.F*(Inlet.Hot.h-Outlet.Hot.h);
223
224"Energy Balance Cold Stream"
225        Details.Q =-Inlet.Cold.F*(Inlet.Cold.h-Outlet.Cold.h);
226
227#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
228#                                       Material Balance
229#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
230"Flow Mass Inlet Cold Stream"
231        Properties.Cold.Inlet.Fw        =  sum(M*Inlet.Cold.z)*Inlet.Cold.F;
232
233"Flow Mass Outlet Cold Stream"
234        Properties.Cold.Outlet.Fw       =  sum(M*Outlet.Cold.z)*Outlet.Cold.F;
235
236"Flow Mass Inlet Hot Stream"
237        Properties.Hot.Inlet.Fw         =  sum(M*Inlet.Hot.z)*Inlet.Hot.F;
238
239"Flow Mass Outlet Hot Stream"   
240        Properties.Hot.Outlet.Fw        =  sum(M*Outlet.Hot.z)*Outlet.Hot.F;
241
242"Molar Balance Hot Stream"
243        Inlet.Hot.F  = Outlet.Hot.F;
244       
245"Molar Balance Cold Stream"
246        Inlet.Cold.F = Outlet.Cold.F;
247
248#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
249#                                       Constraints
250#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
251"Hot Stream Molar Fraction Constraint"
252        Outlet.Hot.z=Inlet.Hot.z;
253       
254"Cold Stream Molar Fraction Constraint"
255        Outlet.Cold.z=Inlet.Cold.z;
256       
257"No Phase Change In Cold Stream"
258        Inlet.Cold.v=Outlet.Cold.v;
259
260"No Phase Change In Hot Stream"
261        Inlet.Hot.v=Outlet.Hot.v;
262       
263end
264
265Model Heatex_Detailed           as HeatExchangerDetailed_Basic
266
267PARAMETERS
268
269#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
270#                               Basic  Parameters                                                                       #
271#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
272ext PP          as CalcObject   (Brief="External Physical Properties");
273ext     HE              as CalcObject   (Brief="STHE Calculations",File="heatex");
274side        as Integer          (Brief="Fluid Alocation Flag",Lower=0,Upper=1);
275Pi                      as constant     (Brief="Pi Number",Default=3.14159265);
276
277#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
278#                               Shell Geometrical Parameters                                            #
279#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
280Tpass                   as Integer              (Brief="Number of Tube Passes",Lower=1);
281Nss                             as Integer              (Brief="Number of Sealing Strips pairs",Lower=1);
282Dishell                 as length               (Brief="Inside Shell Diameter",Lower=10e-6);
283Donozzle_Shell  as length               (Brief="Shell Outlet Nozzle Diameter",Lower=10e-6);
284Dinozzle_Shell  as length               (Brief="Shell Inlet Nozzle Diameter",Lower=10e-6);
285Hinozzle_Shell  as length               (Brief="Height Under Shell Inlet Nozzle",Lower=10e-6);
286Honozzle_Shell  as length               (Brief="Height Under Shell Outlet Nozzle",Lower=10e-6);
287Lcf                     as length               (Brief="Bundle-to-Shell Clearance",Lower=10e-8);
288
289#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
290#                               Tubes Geometrical Parameters                                            #
291#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
292Ntt                       as Integer            (Brief="Total Number of Tubes in Shell",Default=100,Lower=1);
293Pattern       as Integer                (Brief="Tube Layout Characteristic Angle",Lower=30);
294Ltube             as length                     (Brief="Effective Tube Length",Lower=0.1);
295pitch             as length                     (Brief="Tube Pitch",Lower=1e-8);
296Kwall             as conductivity       (Brief="Tube Wall Material Thermal Conductivity");
297Dotube            as length                     (Brief="Tube Outside Diameter",Lower=10e-6);
298Ditube            as length                     (Brief="Tube Inside Diameter",Lower=10e-6);
299Donozzle_Tube as length                 (Brief="Tube Outlet Nozzle Diameter",Lower=10e-6);
300Dinozzle_Tube as length                 (Brief="Tube Inlett Nozzle Diameter",Lower=10e-6);
301
302#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
303#                               Baffles Geometrical Parameters                                          #
304#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
305Bc     as Integer (Brief="Baffle Cut",Default=25,Lower=25);
306Nb     as Real    (Brief="Number of Baffles",Lower=1);
307Lcd    as length  (Brief="Baffle-to-Shell Clearance",Lower=10e-8);
308Ltd        as length  (Brief="Tube-to-Bafflehole Clearance",Lower=10e-8);
309
310SET
311
312#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
313#             Set Parameters for heatex Calculation                                     #
314#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
315        Pi                              = 3.14159265;
316        HE.Tpass                        = Tpass;
317        HE.Nss                          = Nss;
318        HE.Ntt                          = Ntt;
319        HE.Pattern                      = Pattern;
320        HE.Bc                           = Bc;
321        HE.Donozzle_Shell       = Donozzle_Shell;
322        HE.Dinozzle_Shell       = Dinozzle_Shell;
323        HE.Honozzle_Shell       = Honozzle_Shell;
324        HE.Hinozzle_Shell       = Hinozzle_Shell;
325        HE.Donozzle_Tube        = Donozzle_Tube;
326        HE.Dinozzle_Tube        = Dinozzle_Tube;
327        HE.Nb                       = Nb;
328        HE.Dishell                      = Dishell;             
329        HE.Lcf                          = Lcf; 
330        HE.Ltube                        = Ltube;       
331        HE.pitch                        = pitch;               
332        HE.Dotube                       = Dotube;       
333        HE.Ditube                       = Ditube;       
334        HE.Lcd                          = Lcd;
335        HE.Ltd                          = Ltd;
336        side                            = HE.FluidAlocation();
337       
338EQUATIONS
339
340#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
341#                               Heat Transfer Correction Factors                                        #
342#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
343"Ji Factor"
344        Shell.HeatTransfer.Ji = HE.JiFactor(Shell.HeatTransfer.Re);
345
346"Jc Factor"
347        Shell.HeatTransfer.Jc = HE.JcFactor();
348       
349"Jl Factor"
350        Shell.HeatTransfer.Jl = HE.JlFactor(Shell.HeatTransfer.Sm);
351
352"Jb Factor"
353        Shell.HeatTransfer.Jb = HE.JbFactor(Shell.HeatTransfer.Re,Baffles.Ls,Shell.HeatTransfer.Sm);
354
355"Jr Factor"     
356        Shell.HeatTransfer.Jr = HE.JrFactor(Shell.HeatTransfer.Re);
357       
358"Total J Factor"
359        Shell.HeatTransfer.Jtotal =     Shell.HeatTransfer.Jc*Shell.HeatTransfer.Jl*Shell.HeatTransfer.Jb*Shell.HeatTransfer.Jr*Shell.HeatTransfer.Js;
360
361#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
362#                                        Nozzles rho-V^2                                                                #
363#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
364
365if side equal 1
366       
367        then
368
369"Shell Side inlet Nozzle rho-V^2"
370        Shell.PressureDrop.RVsquare_in = Properties.Hot.Inlet.rho*(Shell.PressureDrop.Vnozzle_in)^2;
371
372"Shell Side Outlet Nozzle rho-V^2"
373        Shell.PressureDrop.RVsquare_out = Properties.Hot.Outlet.rho*(Shell.PressureDrop.Vnozzle_out)^2;
374       
375        else
376       
377"Shell Side inlet Nozzle rho-V^2"
378        Shell.PressureDrop.RVsquare_in = Properties.Cold.Inlet.rho*(Shell.PressureDrop.Vnozzle_in)^2;
379
380"Shell Side Outlet Nozzle rho-V^2"
381        Shell.PressureDrop.RVsquare_out = Properties.Cold.Outlet.rho*(Shell.PressureDrop.Vnozzle_out)^2;
382
383end
384
385#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
386#                                        Phi correction                                                                 #
387#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
388
389if side equal 1
390       
391        then
392
393"Shell Side Phi correction"
394        Shell.HeatTransfer.Phi = HE.PhiCorrection(Properties.Hot.Average.Mu,Properties.Hot.Wall.Mu);
395       
396"Tube Side Phi correction"
397        Tubes.HeatTransfer.Phi  = HE.PhiCorrection(Properties.Cold.Average.Mu,Properties.Cold.Wall.Mu);
398       
399        else
400       
401"Shell Side Phi correction"
402        Shell.HeatTransfer.Phi = HE.PhiCorrection(Properties.Cold.Average.Mu,Properties.Cold.Wall.Mu);
403       
404"Tube Side Phi correction"
405        Tubes.HeatTransfer.Phi  = HE.PhiCorrection(Properties.Hot.Average.Mu,Properties.Hot.Wall.Mu);
406
407end
408
409#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
410#                                                                                                                                       #
411#                                                                                                                                       #
412#                                                                                                                                       #
413#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
414
415if side equal 1
416       
417        then
418       
419"Wall Temperature"
420#       Properties.Hot.Wall.Twall = HE.WallTemperature(Properties.Hot.Average.T,Properties.Cold.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell);
421
422#       Properties.Cold.Wall.Twall = HE.WallTemperature(Properties.Cold.Average.T,Properties.Hot.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell);
423
424Properties.Hot.Wall.Twall  = (Properties.Hot.Average.T+Properties.Cold.Average.T)/2;
425
426Properties.Cold.Wall.Twall  = (Properties.Hot.Average.T+Properties.Cold.Average.T)/2;
427
428"Tube Side Velocity"
429        Tubes.HeatTransfer.Vtube  = HE.TubeVelocity(Properties.Cold.Inlet.Fw,Properties.Cold.Average.rho);
430
431"Tube Side Reynolds Number"
432        Tubes.HeatTransfer.Re = HE.TubeReynoldsNumber(Properties.Cold.Average.rho,Tubes.HeatTransfer.Vtube,Properties.Cold.Average.Mu);
433       
434"Tube Side Prandtl Number"
435        Tubes.HeatTransfer.PR = HE.PrandtlNumber(Properties.Cold.Average.K,Properties.Cold.Average.Cp,Properties.Cold.Average.Mw,Properties.Cold.Average.Mu);
436
437"Tube Side Prandtl Number at Wall Temperature"
438        Tubes.HeatTransfer.PRw = HE.PrandtlNumber(Properties.Cold.Wall.K,Properties.Cold.Wall.Cp,Properties.Cold.Average.Mw,Properties.Cold.Wall.Mu);
439
440"Tube Side Film Coefficient"
441        Tubes.HeatTransfer.htube= HE.TubeFilmCoeff(Tubes.HeatTransfer.Re,Tubes.HeatTransfer.PR,Properties.Cold.Average.K,Tubes.HeatTransfer.Phi);
442       
443"Shell Side Prandtl Number"
444        Shell.HeatTransfer.PR=HE.PrandtlNumber(Properties.Hot.Average.K,Properties.Hot.Average.Cp,Properties.Hot.Average.Mw,Properties.Hot.Average.Mu);
445
446"Shell Side Prandtl Number at Wall Temperature"
447        Shell.HeatTransfer.PRw = HE.PrandtlNumber(Properties.Hot.Wall.K,Properties.Hot.Wall.Cp,Properties.Hot.Average.Mw,Properties.Hot.Wall.Mu);       
448
449"Tube Side Pressure Drop"
450        Tubes.PressureDrop.PdTube               = HE.DeltaPtube(Tubes.HeatTransfer.Re,Properties.Cold.Average.rho,Tubes.HeatTransfer.Vtube,Tubes.HeatTransfer.Phi);
451
452"Pressure Drop Tube Side Inlet Nozzle"
453        Tubes.PressureDrop.Pdnozzle_in  = HE.DeltaPtubeNozzlein(Properties.Cold.Inlet.rho,Properties.Cold.Inlet.Fw);
454
455"Velocity Tube Side Inlet Nozzle"
456        Tubes.PressureDrop.Vnozzle_in   = HE.TubeVelocityNozzlein(Properties.Cold.Inlet.rho,Properties.Cold.Inlet.Fw);
457
458"Pressure Drop Tube Side Outlet Nozzle"
459        Tubes.PressureDrop.Pdnozzle_out = HE.DeltaPtubeNozzleout(Properties.Cold.Outlet.rho,Properties.Cold.Inlet.Fw);
460
461"Velocity Tube Side Outlet Nozzle"
462        Tubes.PressureDrop.Vnozzle_out  = HE.TubeVelocityNozzleout(Properties.Cold.Outlet.rho,Properties.Cold.Inlet.Fw);
463
464"Shell Pressure Drop Inlet Nozzle"
465        Shell.PressureDrop.Pdnozzle_in  = HE.DeltaPshellNozzleIn(Properties.Hot.Inlet.rho,Properties.Hot.Inlet.Fw);
466
467"Velocity Shell Side Inlet Nozzle"
468        Shell.PressureDrop.Vnozzle_in   = HE.ShellVelocityNozzleIn(Properties.Hot.Inlet.rho,Properties.Hot.Inlet.Fw);
469
470"Shell Pressure Drop Outlet Nozzle"
471        Shell.PressureDrop.Pdnozzle_out =HE.DeltaPshellNozzleOut(Properties.Hot.Outlet.rho,Properties.Hot.Inlet.Fw);
472
473"Velocity Shell Side Outlet Nozzle"
474        Shell.PressureDrop.Vnozzle_out  =HE.ShellVelocityNozzleOut(Properties.Hot.Outlet.rho,Properties.Hot.Inlet.Fw);
475
476"Pressure Drop Hot Stream"
477        Outlet.Hot.P  = Inlet.Hot.P- Shell.PressureDrop.Pdtotal;       
478       
479"Pressure Drop Cold Stream"
480        Outlet.Cold.P  = Inlet.Cold.P - Tubes.PressureDrop.Pdtotal;
481
482
483        else
484
485"Wall Temperature"
486#       Properties.Cold.Wall.Twall = HE.WallTemperature(Properties.Cold.Average.T,Properties.Hot.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell);
487
488#       Properties.Hot.Wall.Twall = HE.WallTemperature(Properties.Hot.Average.T,Properties.Cold.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell);
489
490
491Properties.Hot.Wall.Twall  = (Properties.Hot.Average.T+Properties.Cold.Average.T)/2;
492
493Properties.Cold.Wall.Twall  = (Properties.Hot.Average.T+Properties.Cold.Average.T)/2;
494
495"Tube Side Velocity"
496        Tubes.HeatTransfer.Vtube=HE.TubeVelocity(Properties.Hot.Inlet.Fw,Properties.Hot.Average.rho);
497
498"Tube Side Reynolds Number"
499        Tubes.HeatTransfer.Re=HE.TubeReynoldsNumber(Properties.Hot.Average.rho,Tubes.HeatTransfer.Vtube,Properties.Hot.Average.Mu);
500       
501"Tube Side Prandtl Number"
502        Tubes.HeatTransfer.PR=HE.PrandtlNumber(Properties.Hot.Average.K,Properties.Hot.Average.Cp,Properties.Hot.Average.Mw,Properties.Hot.Average.Mu);
503
504"Tube Side Prandtl Number at Wall"
505        Tubes.HeatTransfer.PRw=HE.PrandtlNumber(Properties.Hot.Wall.K,Properties.Hot.Wall.Cp,Properties.Hot.Average.Mw,Properties.Hot.Wall.Mu);
506
507"Tube Side Film Coefficient"
508        Tubes.HeatTransfer.htube= HE.TubeFilmCoeff(Tubes.HeatTransfer.Re,Tubes.HeatTransfer.PR,Properties.Hot.Average.K,Tubes.HeatTransfer.Phi);
509       
510"Shell Side Prandtl Number"
511        Shell.HeatTransfer.PR=HE.PrandtlNumber(Properties.Cold.Average.K,Properties.Cold.Average.Cp,Properties.Cold.Average.Mw,Properties.Cold.Average.Mu);
512
513"Shell Side Prandtl Number at Wall"
514        Shell.HeatTransfer.PRw=HE.PrandtlNumber(Properties.Cold.Wall.K,Properties.Cold.Wall.Cp,Properties.Cold.Average.Mw,Properties.Cold.Wall.Mu);
515
516"Tube Side Pressure Drop"
517        Tubes.PressureDrop.PdTube               = HE.DeltaPtube(Tubes.HeatTransfer.Re,Properties.Hot.Average.rho,Tubes.HeatTransfer.Vtube,Tubes.HeatTransfer.Phi);
518
519"Pressure Drop Tube Side Inlet Nozzle"
520        Tubes.PressureDrop.Pdnozzle_in  = HE.DeltaPtubeNozzlein(Properties.Hot.Inlet.rho,Properties.Hot.Inlet.Fw);
521
522"Velocity Tube Side Inlet Nozzle"
523        Tubes.PressureDrop.Vnozzle_in   = HE.TubeVelocityNozzlein(Properties.Hot.Inlet.rho,Properties.Hot.Inlet.Fw);
524
525"Pressure Drop Tube Side Outlet Nozzle"
526        Tubes.PressureDrop.Pdnozzle_out = HE.DeltaPtubeNozzleout(Properties.Hot.Outlet.rho,Properties.Hot.Inlet.Fw);   
527
528"Velocity Tube Side Outlet Nozzle"
529        Tubes.PressureDrop.Vnozzle_out  = HE.TubeVelocityNozzleout(Properties.Hot.Outlet.rho,Properties.Hot.Inlet.Fw); 
530
531"Shell Pressure Drop Inlet Nozzle"
532        Shell.PressureDrop.Pdnozzle_in  = HE.DeltaPshellNozzleIn(Properties.Cold.Inlet.rho,Properties.Cold.Inlet.Fw);
533
534"Velocity Shell Side Inlet Nozzle"
535        Shell.PressureDrop.Vnozzle_in   = HE.ShellVelocityNozzleIn(Properties.Cold.Inlet.rho,Properties.Cold.Inlet.Fw);
536
537"Shell Pressure Drop Outlet Nozzle"
538        Shell.PressureDrop.Pdnozzle_out = HE.DeltaPshellNozzleOut(Properties.Cold.Outlet.rho,Properties.Cold.Inlet.Fw);
539
540"Velocity Shell Side Outlet Nozzle"
541        Shell.PressureDrop.Vnozzle_out  = HE.ShellVelocityNozzleOut(Properties.Cold.Outlet.rho,Properties.Cold.Inlet.Fw);
542
543"Pressure Drop Hot Stream"
544        Outlet.Hot.P  = Inlet.Hot.P- Tubes.PressureDrop.Pdtotal;       
545       
546"Pressure Drop Cold Stream"
547        Outlet.Cold.P  = Inlet.Cold.P - Shell.PressureDrop.Pdtotal;
548
549
550end
551
552#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
553#                                               Resistances                                                                     #
554#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
555
556"Tube Resistance"       
557        Resistances.Rtube*(Tubes.HeatTransfer.htube*Ditube) = Dotube;
558       
559"Wall Resistance"
560        Resistances.Rwall=Dotube*ln(Dotube/Ditube)/(2*Kwall);
561       
562"Shell Resistance"
563        Resistances.Rshell*(Shell.HeatTransfer.hshell)=1;
564
565#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
566#                                                                                                                                       #
567#                                                                                                                                       #
568#                                                                                                                                       #
569#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
570
571"Shell Side Cross Flow Area"
572        Shell.HeatTransfer.Sm = HE.CrossFlowArea(Baffles.Ls);
573       
574"Overall Heat Transfer Coefficient"
575        Details.U=1/(Dotube/(Tubes.HeatTransfer.htube*Ditube)+(Dotube*ln(Dotube/Ditube)/(2*Kwall))+(1/(Shell.HeatTransfer.hshell)));
576
577"Exchange Surface Area"
578        Details.A=Pi*Dotube*Ntt*Ltube;
579
580"Baffles Spacing"
581        Ltube = Baffles.Lsi+Baffles.Lso+Baffles.Ls*(Nb-1);
582
583end
584
585Model Heatex_Detailed_NTU               as Heatex_Detailed
586       
587VARIABLES
588
589Eft                      as positive (Brief="Effectiveness",Default=0.05,Lower=1e-8);
590       
591EQUATIONS
592"Duty"
593        Details.Q       = Eft*Details.Cmin*(Inlet.Hot.T-Inlet.Cold.T); 
594       
595end
596
597Model Heatex_Detailed_LMTD              as Heatex_Detailed
598       
599VARIABLES
600LMTD            as temp_delta   (Brief="Logarithmic Mean Temperature Difference",Lower=5);
601Fc                      as positive             (Brief="LMTD Correction Factor",Lower=0.4);
602MTD                     as temp_delta   (Brief="Mean Temperature Difference",Lower=5);
603
604EQUATIONS
605
606"Exchange Surface Area"
607        Details.Q   = Details.U*Details.A*MTD;
608       
609"Mean Temperature Difference"   
610        MTD   = Fc*LMTD;
611       
612end
613
614Model E_Shell_NTU_Det                   as Heatex_Detailed_NTU
615#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
616#       Shell and Tubes Heat Exchanger with 1 shell pass - LMTD Method
617#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
618EQUATIONS
619
620"TEMA E Shell Effectiveness"
621#       Eft = 2*(1+Details.Cr+sqrt(1+Details.Cr^2)*((1+exp(-Details.NTU*sqrt(1+Details.Cr^2)))/(1-exp(-Details.NTU*sqrt(1+Details.Cr^2)))) )^-1;
622        Eft = HE.EshellEffectiveness(Details.Cr,Details.NTU);
623
624"Js Factor"     
625        Shell.HeatTransfer.Js = HE.JsFactor(Shell.HeatTransfer.Re,Baffles.Lsi,Baffles.Lso,Baffles.Ls);
626
627if side equal 1
628       
629        then
630       
631"Shell Side Reynolds Number"
632        Shell.HeatTransfer.Re=HE.ShellReynoldsNumber(Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Sm,Properties.Hot.Average.Mu);
633
634"Shell Heat Transfer Coefficient"
635        Shell.HeatTransfer.hshell=HE.ShellFilmCoeff(Shell.HeatTransfer.Ji,Properties.Hot.Average.Cp,Properties.Hot.Average.Mw,Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Sm,Shell.HeatTransfer.PR,Shell.HeatTransfer.Jtotal,Shell.HeatTransfer.Phi);
636
637"Shell Pressure Drop Cross Flow"
638        Shell.PressureDrop.PdCross              = HE.DeltaPcross(Shell.HeatTransfer.Re,Baffles.Ls,Baffles.Lso,Baffles.Lsi,Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Phi,Properties.Hot.Average.rho);
639
640"Shell Pressure Baffle Window"
641        Shell.PressureDrop.Pdwindow             = HE.DeltaPwindow(Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Sm,Properties.Hot.Average.rho,Properties.Hot.Average.Mu,Baffles.Ls);
642
643"Shell Pressure End Zones"
644        Shell.PressureDrop.PdEndZones  = HE.DeltaPendZones(Shell.HeatTransfer.Re,Baffles.Ls,Baffles.Lso,Baffles.Lsi,Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Phi,Properties.Hot.Average.rho);
645
646
647        else
648
649"Shell Side Reynolds Number"
650        Shell.HeatTransfer.Re=HE.ShellReynoldsNumber(Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Sm,Properties.Cold.Average.Mu);
651
652"Shell Heat Transfer Coefficient"
653        Shell.HeatTransfer.hshell=HE.ShellFilmCoeff(Shell.HeatTransfer.Ji,Properties.Cold.Average.Cp,Properties.Cold.Average.Mw,Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Sm,Shell.HeatTransfer.PR,Shell.HeatTransfer.Jtotal,Shell.HeatTransfer.Phi);
654
655"Shell Pressure Drop Cross Flow"
656        Shell.PressureDrop.PdCross      = HE.DeltaPcross(Shell.HeatTransfer.Re,Baffles.Ls,Baffles.Lso,Baffles.Lsi,Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Phi,Properties.Cold.Average.rho);
657
658"Shell Pressure Baffle Window"
659        Shell.PressureDrop.Pdwindow     = HE.DeltaPwindow(Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Sm,Properties.Cold.Average.rho,Properties.Cold.Average.Mu,Baffles.Ls);
660
661"Shell Pressure End Zones"
662        Shell.PressureDrop.PdEndZones  = HE.DeltaPendZones(Shell.HeatTransfer.Re,Baffles.Ls,Baffles.Lso,Baffles.Lsi,Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Phi,Properties.Cold.Average.rho);
663
664
665end
666
667end
668
669Model F_Shell_NTU_Det                   as Heatex_Detailed_NTU
670#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
671#       Shell and Tubes Heat Exchanger with 1 shell pass - LMTD Method
672#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
673VARIABLES
674
675Eft1    as positive (Brief="Effectiveness Correction",Lower=0.01,Default=0.5);
676
677EQUATIONS
678
679"Effectiveness Correction"
680        Eft1 = 2*(1+Details.Cr+sqrt(1+Details.Cr^2)*((1+exp(-Details.NTU*sqrt(1+Details.Cr^2)))/(1-exp(-Details.NTU*sqrt(1+Details.Cr^2)))) )^-1;
681
682"TEMA F Shell Effectiveness"
683        Eft = ( ((1-Eft1*Details.Cr)/(1-Eft1))^2 -1  )*( ((1-Eft1*Details.Cr)/(1-Eft1))^2 - Details.Cr )^-1;
684
685"Js Factor"     
686        Shell.HeatTransfer.Js = HE.JsFactor(Shell.HeatTransfer.Re,Baffles.Lsi,Baffles.Lso,Baffles.Ls);
687
688if side equal 1
689       
690        then
691       
692"Shell Side Reynolds Number"
693        Shell.HeatTransfer.Re= HE.ShellReynoldsNumber(Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Sm,Properties.Hot.Average.Mu);
694
695"Shell Heat Transfer Coefficient"
696        Shell.HeatTransfer.hshell= HE.ShellFilmCoeff(Shell.HeatTransfer.Ji,Properties.Hot.Average.Cp,Properties.Hot.Average.Mw,Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Sm,Shell.HeatTransfer.PR,Shell.HeatTransfer.Jtotal,Shell.HeatTransfer.Phi);
697
698"Shell Pressure Drop Cross Flow"
699        Shell.PressureDrop.PdCross              = HE.DeltaPcross(Shell.HeatTransfer.Re,Baffles.Ls,Baffles.Lso,Baffles.Lsi,Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Phi,Properties.Hot.Average.rho);
700
701"Shell Pressure Baffle Window"
702        Shell.PressureDrop.Pdwindow             = HE.DeltaPwindow(Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Sm,Properties.Hot.Average.rho,Properties.Hot.Average.Mu,Baffles.Ls);
703
704"Shell Pressure End Zones"
705        Shell.PressureDrop.PdEndZones  = HE.DeltaPendZones(Shell.HeatTransfer.Re,Baffles.Ls,Baffles.Lso,Baffles.Lsi,Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Phi,Properties.Hot.Average.rho);
706
707
708        else
709
710"Shell Side Reynolds Number"
711        Shell.HeatTransfer.Re=HE.ShellReynoldsNumber(Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Sm,Properties.Cold.Average.Mu);
712
713"Shell Heat Transfer Coefficient"
714        Shell.HeatTransfer.hshell=HE.ShellFilmCoeff(Shell.HeatTransfer.Ji,Properties.Cold.Average.Cp,Properties.Cold.Average.Mw,Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Sm,Shell.HeatTransfer.PR,Shell.HeatTransfer.Jtotal,Shell.HeatTransfer.Phi);
715
716"Shell Pressure Drop Cross Flow"
717        Shell.PressureDrop.PdCross      = HE.DeltaPcross(Shell.HeatTransfer.Re,Baffles.Ls,Baffles.Lso,Baffles.Lsi,Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Phi,Properties.Cold.Average.rho);
718
719"Shell Pressure Baffle Window"
720        Shell.PressureDrop.Pdwindow     = HE.DeltaPwindow(Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Sm,Properties.Cold.Average.rho,Properties.Cold.Average.Mu,Baffles.Ls);
721
722"Shell Pressure End Zones"
723        Shell.PressureDrop.PdEndZones  = HE.DeltaPendZones(Shell.HeatTransfer.Re,Baffles.Ls,Baffles.Lso,Baffles.Lsi,Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Phi,Properties.Cold.Average.rho);
724
725
726end
727
728
729end
730
731Model Multipass_NTU_Det         
732#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
733#       Shell and Tubes Heat Exchanger In Series with 1 shell pass - LMTD Method
734#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
735PARAMETERS
736
737Nshell          as Integer              (Brief="N Shell in Series",Default=2);
738ext     HE              as CalcObject   (Brief="STHE Calculations",File="heatex.dll");
739ext PP          as CalcObject   (Brief="External Physical Properties");
740side        as Integer          (Brief="Fluid Alocation",Lower=0,Upper=1);
741Pi                      as constant     (Brief="Pi Number",Default=3.14159265);
742
743#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
744#       Shell Geometrical Parameters
745#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
746Tpass                   as Integer              (Brief="Number of Tube Passes",Lower=1);
747Nss                             as Integer              (Brief="Number of Sealing Strips pairs",Lower=1);
748Dishell                 as length               (Brief="Inside Shell Diameter",Lower=10e-6);
749Donozzle_Shell  as length               (Brief="Shell Outlet Nozzle Diameter",Lower=10e-6);
750Dinozzle_Shell  as length               (Brief="Shell Inlet Nozzle Diameter",Lower=10e-6);
751Hinozzle_Shell  as length               (Brief="Height Under Shell Inlet Nozzle",Lower=10e-6);
752Honozzle_Shell  as length               (Brief="Height Under Shell Outlet Nozzle",Lower=10e-6);
753Lcf                     as length               (Brief="Bundle-to-Shell Clearance",Lower=10e-8);
754#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
755#       Tubes Geometrical Parameters
756#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
757Ntt                             as Integer              (Brief="Total Number of Tubes in Shell",Default=100,Lower=1);
758Pattern         as Integer              (Brief="Tube Layout Characteristic Angle",Lower=30);
759Ltube                   as length               (Brief="Effective Tube Length",Lower=0.1);
760pitch                   as length               (Brief="Tube Pitch",Lower=1e-8);
761Kwall                   as conductivity (Brief="Tube Wall Material Thermal Conductivity");
762Dotube                  as length               (Brief="Tube Outside Diameter",Lower=10e-6);
763Ditube                  as length               (Brief="Tube Inside Diameter",Lower=10e-6);
764Donozzle_Tube   as length               (Brief="Tube Outlet Nozzle Diameter",Lower=10e-6);
765Dinozzle_Tube   as length               (Brief="Tube Inlett Nozzle Diameter",Lower=10e-6);
766#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
767#       Baffles Geometrical Parameters
768#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
769Bc                      as Integer              (Brief="Baffle Cut",Default=25,Lower=25);
770Nb              as Real                 (Brief="Number of Baffles",Lower=1);
771Lcd                     as length               (Brief="Baffle-to-Shell Clearance",Lower=10e-8);
772Ltd                             as length               (Brief="Tube-to-Bafflehole Clearance",Lower=10e-8);
773#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
774VARIABLES
775
776Eft(Nshell)       as positive (Brief="Effectiveness",Default=0.05,Lower=1e-8);
777Unity(Nshell) as HeatExchangerDetailed_Basic;# "Shell in Series"
778
779CONNECTIONS
780
781Unity([1:Nshell-1]).Outlet.Hot  to Unity([2:Nshell]).Inlet.Hot;
782Unity([2:Nshell]).Outlet.Cold to Unity([1:Nshell-1]).Inlet.Cold;
783
784EQUATIONS
785
786for i in [1:Nshell]
787       
788"Shell Side Cross Flow Area"
789        Unity(i).Shell.HeatTransfer.Sm = HE.CrossFlowArea(Unity(i).Baffles.Ls);
790
791"Ji Factor"
792        Unity(i).Shell.HeatTransfer.Ji = HE.JiFactor(Unity(i).Shell.HeatTransfer.Re);
793
794"Jc Factor"
795        Unity(i).Shell.HeatTransfer.Jc = HE.JcFactor();
796       
797"Jl Factor"
798        Unity(i).Shell.HeatTransfer.Jl = HE.JlFactor(Unity(i).Shell.HeatTransfer.Sm);
799
800"Jb Factor"
801        Unity(i).Shell.HeatTransfer.Jb = HE.JbFactor(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Shell.HeatTransfer.Sm);
802
803"Jr Factor"     
804        Unity(i).Shell.HeatTransfer.Jr = HE.JrFactor(Unity(i).Shell.HeatTransfer.Re);
805       
806"Total J Factor"
807        Unity(i).Shell.HeatTransfer.Jtotal=Unity(i).Shell.HeatTransfer.Jc*Unity(i).Shell.HeatTransfer.Jl*Unity(i).Shell.HeatTransfer.Jb*Unity(i).Shell.HeatTransfer.Jr*Unity(i).Shell.HeatTransfer.Js;
808
809#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
810#  Fluid Alocation
811#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
812
813if side equal 1 then
814       
815"Shell Side Phi correction for viscosity"
816        Unity(i).Shell.HeatTransfer.Phi = HE.PhiCorrection(Unity(i).Properties.Hot.Average.Mu,Unity(i).Properties.Hot.Wall.Mu);
817       
818"Tube Side Phi correction for viscosity"
819        Unity(i).Tubes.HeatTransfer.Phi  = HE.PhiCorrection(Unity(i).Properties.Cold.Average.Mu,Unity(i).Properties.Cold.Wall.Mu);
820       
821        else
822       
823"Shell Side Phi correction for viscosity"
824        Unity(i).Shell.HeatTransfer.Phi = HE.PhiCorrection(Unity(i).Properties.Cold.Average.Mu,Unity(i).Properties.Cold.Wall.Mu);
825       
826"Tube Side Phi correction for viscosity"
827        Unity(i).Tubes.HeatTransfer.Phi  = HE.PhiCorrection(Unity(i).Properties.Hot.Average.Mu,Unity(i).Properties.Hot.Average.Mu);
828
829end
830
831
832if side equal 1
833       
834        then
835       
836"Hot Wall Temperature"
837        Unity(i).Properties.Hot.Wall.Twall  = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2;
838
839"Cold Wall Temperature"
840        Unity(i).Properties.Cold.Wall.Twall  = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2;
841
842"Tube Side Velocity"
843        Unity(i).Tubes.HeatTransfer.Vtube  = HE.TubeVelocity(Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Properties.Cold.Average.rho);
844
845"Tube Side Reynolds Number"
846        Unity(i).Tubes.HeatTransfer.Re = HE.TubeReynoldsNumber(Unity(i).Properties.Cold.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube,Unity(i).Properties.Cold.Average.Mu);
847       
848"Tube Side Prandtl Number"
849        Unity(i).Tubes.HeatTransfer.PR = HE.PrandtlNumber(Unity(i).Properties.Cold.Average.K,Unity(i).Properties.Cold.Average.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Average.Mu);
850
851"Tube Side Prandtl Number at Wall Temperature"
852        Unity(i).Tubes.HeatTransfer.PRw = HE.PrandtlNumber(Unity(i).Properties.Cold.Wall.K,Unity(i).Properties.Cold.Wall.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Wall.Mu);
853
854"Tube Side Film Coefficient"
855        Unity(i).Tubes.HeatTransfer.htube= HE.TubeFilmCoeff(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Tubes.HeatTransfer.PR,Unity(i).Properties.Cold.Average.K,Unity(i).Tubes.HeatTransfer.Phi);
856       
857"Shell Side Prandtl Number"
858        Unity(i).Shell.HeatTransfer.PR=HE.PrandtlNumber(Unity(i).Properties.Hot.Average.K,Unity(i).Properties.Hot.Average.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Average.Mu);   
859
860"Shell Side Prandtl Number at Wall Temperature"
861        Unity(i).Shell.HeatTransfer.PRw = HE.PrandtlNumber(Unity(i).Properties.Hot.Wall.K,Unity(i).Properties.Hot.Wall.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Wall.Mu); 
862
863"Tube Side Pressure Drop"
864        Unity(i).Tubes.PressureDrop.PdTube              = HE.DeltaPtube(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Properties.Cold.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube,Unity(i).Tubes.HeatTransfer.Phi);
865
866"Pressure Drop Tube Side Inlet Nozzle"
867        Unity(i).Tubes.PressureDrop.Pdnozzle_in = HE.DeltaPtubeNozzlein(Unity(i).Properties.Cold.Inlet.rho,Unity(i).Properties.Cold.Inlet.Fw);
868
869"Velocity Tube Side Inlet Nozzle"
870        Unity(i).Tubes.PressureDrop.Vnozzle_in  = HE.TubeVelocityNozzlein(Unity(i).Properties.Cold.Inlet.rho,Unity(i).Properties.Cold.Inlet.Fw);
871
872"Pressure Drop Tube Side Outlet Nozzle"
873        Unity(i).Tubes.PressureDrop.Pdnozzle_out        = HE.DeltaPtubeNozzleout(Unity(i).Properties.Cold.Outlet.rho,Unity(i).Properties.Cold.Inlet.Fw);
874
875"Velocity Tube Side Outlet Nozzle"
876        Unity(i).Tubes.PressureDrop.Vnozzle_out = HE.TubeVelocityNozzleout(Unity(i).Properties.Cold.Outlet.rho,Unity(i).Properties.Cold.Inlet.Fw);
877
878"Shell Pressure Drop Inlet Nozzle"
879        Unity(i).Shell.PressureDrop.Pdnozzle_in = HE.DeltaPshellNozzleIn(Unity(i).Properties.Hot.Inlet.rho,Unity(i).Properties.Hot.Inlet.Fw);
880
881"Velocity Shell Side Inlet Nozzle"
882        Unity(i).Shell.PressureDrop.Vnozzle_in  = HE.ShellVelocityNozzleIn(Unity(i).Properties.Hot.Inlet.rho,Unity(i).Properties.Hot.Inlet.Fw);
883
884"Shell Pressure Drop Outlet Nozzle"
885        Unity(i).Shell.PressureDrop.Pdnozzle_out        =HE.DeltaPshellNozzleOut(Unity(i).Properties.Hot.Outlet.rho,Unity(i).Properties.Hot.Inlet.Fw);
886
887"Velocity Shell Side Outlet Nozzle"
888        Unity(i).Shell.PressureDrop.Vnozzle_out =HE.ShellVelocityNozzleOut(Unity(i).Properties.Hot.Outlet.rho,Unity(i).Properties.Hot.Inlet.Fw);
889
890"Pressure Drop Hot Stream"
891        Unity(i).Outlet.Hot.P  = Unity(i).Inlet.Hot.P- Unity(i).Shell.PressureDrop.Pdtotal;     
892       
893"Pressure Drop Cold Stream"
894        Unity(i).Outlet.Cold.P  = Unity(i).Inlet.Cold.P - Unity(i).Tubes.PressureDrop.Pdtotal;
895
896
897        else
898
899"Hot Wall Temperature"
900        Unity(i).Properties.Hot.Wall.Twall  = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2;
901
902"Cold Wall Temperature"
903        Unity(i).Properties.Cold.Wall.Twall  = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2;
904
905"Tube Side Velocity"
906        Unity(i).Tubes.HeatTransfer.Vtube       =       HE.TubeVelocity(Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Properties.Hot.Average.rho);
907
908"Tube Side Reynolds Number"
909        Unity(i).Tubes.HeatTransfer.Re          =       HE.TubeReynoldsNumber(Unity(i).Properties.Hot.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube,Unity(i).Properties.Hot.Average.Mu);
910       
911"Tube Side Prandtl Number"
912        Unity(i).Tubes.HeatTransfer.PR          =       HE.PrandtlNumber(Unity(i).Properties.Hot.Average.K,Unity(i).Properties.Hot.Average.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Average.Mu);
913       
914"Tube Side Prandtl Number at Wall"
915        Unity(i).Tubes.HeatTransfer.PRw     =  HE.PrandtlNumber(Unity(i).Properties.Hot.Wall.K,Unity(i).Properties.Hot.Wall.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Wall.Mu);
916
917"Tube Side Film Coefficient"
918        Unity(i).Tubes.HeatTransfer.htube       =       HE.TubeFilmCoeff(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Tubes.HeatTransfer.PR,Unity(i).Properties.Hot.Average.K,Unity(i).Tubes.HeatTransfer.Phi);
919       
920"Shell Side Prandtl Number"
921        Unity(i).Shell.HeatTransfer.PR          =       HE.PrandtlNumber(Unity(i).Properties.Cold.Average.K,Unity(i).Properties.Cold.Average.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Average.Mu);
922       
923"Shell Side Prandtl Number at Wall"
924        Unity(i).Shell.HeatTransfer.PRw     =   HE.PrandtlNumber(Unity(i).Properties.Cold.Wall.K,Unity(i).Properties.Cold.Wall.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Wall.Mu);
925
926"Tube Side Pressure Drop"
927        Unity(i).Tubes.PressureDrop.PdTube      =       HE.DeltaPtube(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Properties.Hot.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube,Unity(i).Tubes.HeatTransfer.Phi);
928
929"Pressure Drop Tube Side Inlet Nozzle"
930        Unity(i).Tubes.PressureDrop.Pdnozzle_in = HE.DeltaPtubeNozzlein(Unity(i).Properties.Hot.Inlet.rho,Unity(i).Properties.Hot.Inlet.Fw);
931
932"Velocity Tube Side Inlet Nozzle"
933        Unity(i).Tubes.PressureDrop.Vnozzle_in  = HE.TubeVelocityNozzlein(Unity(i).Properties.Hot.Inlet.rho,Unity(i).Properties.Hot.Inlet.Fw);
934
935"Pressure Drop Tube Side Outlet Nozzle"
936        Unity(i).Tubes.PressureDrop.Pdnozzle_out        = HE.DeltaPtubeNozzleout(Unity(i).Properties.Hot.Outlet.rho,Unity(i).Properties.Hot.Inlet.Fw); 
937
938"Velocity Tube Side Outlet Nozzle"
939        Unity(i).Tubes.PressureDrop.Vnozzle_out = HE.TubeVelocityNozzleout(Unity(i).Properties.Hot.Outlet.rho,Unity(i).Properties.Hot.Inlet.Fw);       
940
941"Shell Pressure Drop Inlet Nozzle"
942        Unity(i).Shell.PressureDrop.Pdnozzle_in = HE.DeltaPshellNozzleIn(Unity(i).Properties.Cold.Inlet.rho,Unity(i).Properties.Cold.Inlet.Fw);
943
944"Velocity Shell Side Inlet Nozzle"
945        Unity(i).Shell.PressureDrop.Vnozzle_in  = HE.ShellVelocityNozzleIn(Unity(i).Properties.Cold.Inlet.rho,Unity(i).Properties.Cold.Inlet.Fw);
946
947"Shell Pressure Drop Outlet Nozzle"
948        Unity(i).Shell.PressureDrop.Pdnozzle_out = HE.DeltaPshellNozzleOut(Unity(i).Properties.Cold.Outlet.rho,Unity(i).Properties.Cold.Inlet.Fw);
949
950"Velocity Shell Side Outlet Nozzle"
951        Unity(i).Shell.PressureDrop.Vnozzle_out  = HE.ShellVelocityNozzleOut(Unity(i).Properties.Cold.Outlet.rho,Unity(i).Properties.Cold.Inlet.Fw);
952
953"Pressure Drop Hot Stream"
954        Unity(i).Outlet.Hot.P  = Unity(i).Inlet.Hot.P- Unity(i).Tubes.PressureDrop.Pdtotal;     
955       
956"Pressure Drop Cold Stream"
957        Unity(i).Outlet.Cold.P  = Unity(i).Inlet.Cold.P - Unity(i).Shell.PressureDrop.Pdtotal;
958
959
960end
961
962if side equal 1
963       
964        then
965
966"Shell Side inlet Nozzle rho-V^2"
967        Unity(i).Shell.PressureDrop.RVsquare_in = Unity(i).Properties.Hot.Inlet.rho*(Unity(i).Shell.PressureDrop.Vnozzle_in)^2;
968
969"Shell Side Outlet Nozzle rho-V^2"
970        Unity(i).Shell.PressureDrop.RVsquare_out = Unity(i).Properties.Hot.Outlet.rho*(Unity(i).Shell.PressureDrop.Vnozzle_out)^2;
971       
972        else
973       
974"Shell Side inlet Nozzle rho-V^2"
975        Unity(i).Shell.PressureDrop.RVsquare_in = Unity(i).Properties.Cold.Inlet.rho*(Unity(i).Shell.PressureDrop.Vnozzle_in)^2;
976
977"Shell Side Outlet Nozzle rho-V^2"
978        Unity(i).Shell.PressureDrop.RVsquare_out = Unity(i).Properties.Cold.Outlet.rho*(Unity(i).Shell.PressureDrop.Vnozzle_out)^2;
979
980end
981
982"Tube Resistance"       
983        Unity(i).Resistances.Rtube*(Unity(i).Tubes.HeatTransfer.htube*Ditube) = Dotube;
984       
985"Wall Resistance"
986        Unity(i).Resistances.Rwall=Dotube*ln(Dotube/Ditube)/(2*Kwall);
987       
988"Shell Resistance"
989        Unity(i).Resistances.Rshell*(Unity(i).Shell.HeatTransfer.hshell)=1;
990       
991"Overall Heat Transfer Coefficient"
992        Unity(i).Details.U=1/(Dotube/(Unity(i).Tubes.HeatTransfer.htube*Ditube)+(Dotube*ln(Dotube/Ditube)/(2*Kwall))+(1/(Unity(i).Shell.HeatTransfer.hshell)));
993
994"Exchange Surface Area"
995        Unity(i).Details.A=Pi*Dotube*Ntt*Ltube;
996
997"Baffles Spacing"
998        Ltube = Unity(i).Baffles.Lsi+Unity(i).Baffles.Lso+Unity(i).Baffles.Ls*(Nb-1);
999
1000"TEMA E Shell Effectiveness"
1001        Eft(i) = 2*(1+Unity(i).Details.Cr+sqrt(1+Unity(i).Details.Cr^2)*((1+exp(-Unity(i).Details.NTU*sqrt(1+Unity(i).Details.Cr^2)))/(1-exp(-Unity(i).Details.NTU*sqrt(1+Unity(i).Details.Cr^2)))) )^-1;
1002
1003"Js Factor"     
1004        Unity(i).Shell.HeatTransfer.Js = HE.JsFactor(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Lsi,Unity(i).Baffles.Lso,Unity(i).Baffles.Ls);
1005
1006if side equal 1
1007       
1008        then
1009       
1010"Shell Side Reynolds Number"
1011        Unity(i).Shell.HeatTransfer.Re=HE.ShellReynoldsNumber(Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Hot.Average.Mu);
1012
1013"Shell Heat Transfer Coefficient"
1014        Unity(i).Shell.HeatTransfer.hshell=HE.ShellFilmCoeff(Unity(i).Shell.HeatTransfer.Ji,Unity(i).Properties.Hot.Average.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Shell.HeatTransfer.PR,Unity(i).Shell.HeatTransfer.Jtotal,Unity(i).Shell.HeatTransfer.Phi);
1015
1016"Shell Pressure Drop Cross Flow"
1017        Unity(i).Shell.PressureDrop.PdCross             = HE.DeltaPcross(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Hot.Average.rho);
1018
1019"Shell Pressure Baffle Window"
1020        Unity(i).Shell.PressureDrop.Pdwindow            = HE.DeltaPwindow(Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Hot.Average.rho,Unity(i).Properties.Hot.Average.Mu,Unity(i).Baffles.Ls);
1021
1022"Shell Pressure End Zones"
1023        Unity(i).Shell.PressureDrop.PdEndZones  = HE.DeltaPendZones(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Hot.Average.rho);
1024
1025
1026        else
1027
1028"Shell Side Reynolds Number"
1029        Unity(i).Shell.HeatTransfer.Re=HE.ShellReynoldsNumber(Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Cold.Average.Mu);
1030
1031"Shell Heat Transfer Coefficient"
1032        Unity(i).Shell.HeatTransfer.hshell=HE.ShellFilmCoeff(Unity(i).Shell.HeatTransfer.Ji,Unity(i).Properties.Cold.Average.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Shell.HeatTransfer.PR,Unity(i).Shell.HeatTransfer.Jtotal,Unity(i).Shell.HeatTransfer.Phi);
1033
1034"Shell Pressure Drop Cross Flow"
1035        Unity(i).Shell.PressureDrop.PdCross      = HE.DeltaPcross(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Cold.Average.rho);
1036
1037"Shell Pressure Baffle Window"
1038        Unity(i).Shell.PressureDrop.Pdwindow     = HE.DeltaPwindow(Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Cold.Average.rho,Unity(i).Properties.Cold.Average.Mu,Unity(i).Baffles.Ls);
1039
1040"Shell Pressure End Zones"
1041        Unity(i).Shell.PressureDrop.PdEndZones  = HE.DeltaPendZones(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Cold.Average.rho);
1042
1043
1044end
1045
1046"Duty"
1047        Unity(i).Details.Q      = Eft(i)*Unity(i).Details.Cmin*(Unity(i).Inlet.Hot.T-Unity(i).Inlet.Cold.T);
1048
1049end
1050
1051        SET
1052#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1053#  Set Parameters for heatex Calculation
1054#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1055        Pi                              = 3.14159265;
1056        HE.Tpass                        = Tpass;
1057        HE.Nss                          = Nss;
1058        HE.Ntt                          = Ntt;
1059        HE.Pattern                      = Pattern;
1060        HE.Bc                           = Bc;
1061        HE.Donozzle_Shell       = Donozzle_Shell;
1062        HE.Dinozzle_Shell       = Dinozzle_Shell;
1063        HE.Honozzle_Shell       = Honozzle_Shell;
1064        HE.Hinozzle_Shell       = Hinozzle_Shell;
1065        HE.Donozzle_Tube        = Donozzle_Tube;
1066        HE.Dinozzle_Tube        = Dinozzle_Tube;
1067        HE.Nb                       = Nb;
1068        HE.Dishell                      = Dishell;             
1069        HE.Lcf                          = Lcf; 
1070        HE.Ltube                        = Ltube;       
1071        HE.pitch                        = pitch;               
1072        HE.Dotube                       = Dotube;       
1073        HE.Ditube                       = Ditube;       
1074        HE.Lcd                          = Lcd;
1075        HE.Ltd                          = Ltd; 
1076        side                            = HE.FluidAlocation();
1077
1078end
1079
1080Model E_Shell_LMTD_Det                  as Heatex_Detailed_LMTD
1081#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1082#       Shell and Tubes Heat Exchanger with 1 shell pass - LMTD Method
1083#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1084EQUATIONS
1085
1086"LMTD Correction Factor"
1087        Fc = HE.EshellCorrectionFactor(Inlet.Hot.T,Outlet.Hot.T,Inlet.Cold.T,Outlet.Cold.T);
1088
1089"Counter Flow LMTD"
1090        LMTD = HE.CounterLMTD(Inlet.Hot.T,Outlet.Hot.T,Inlet.Cold.T,Outlet.Cold.T);
1091
1092"Js Factor"     
1093        Shell.HeatTransfer.Js = HE.JsFactor(Shell.HeatTransfer.Re,Baffles.Lsi,Baffles.Lso,Baffles.Ls);
1094
1095if side equal 1
1096       
1097        then
1098       
1099"Shell Side Reynolds Number"
1100        Shell.HeatTransfer.Re=HE.ShellReynoldsNumber(Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Sm,Properties.Hot.Average.Mu);
1101
1102"Shell Heat Transfer Coefficient"
1103        Shell.HeatTransfer.hshell=HE.ShellFilmCoeff(Shell.HeatTransfer.Ji,Properties.Hot.Average.Cp,Properties.Hot.Average.Mw,Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Sm,Shell.HeatTransfer.PR,Shell.HeatTransfer.Jtotal,Shell.HeatTransfer.Phi);
1104
1105"Shell Pressure Drop Cross Flow"
1106        Shell.PressureDrop.PdCross              = HE.DeltaPcross(Shell.HeatTransfer.Re,Baffles.Ls,Baffles.Lso,Baffles.Lsi,Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Phi,Properties.Hot.Average.rho);
1107
1108"Shell Pressure Baffle Window"
1109        Shell.PressureDrop.Pdwindow             = HE.DeltaPwindow(Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Sm,Properties.Hot.Average.rho,Properties.Hot.Average.Mu,Baffles.Ls);
1110
1111"Shell Pressure End Zones"
1112        Shell.PressureDrop.PdEndZones  = HE.DeltaPendZones(Shell.HeatTransfer.Re,Baffles.Ls,Baffles.Lso,Baffles.Lsi,Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Phi,Properties.Hot.Average.rho);
1113
1114
1115        else
1116
1117"Shell Side Reynolds Number"
1118        Shell.HeatTransfer.Re=HE.ShellReynoldsNumber(Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Sm,Properties.Cold.Average.Mu);
1119
1120"Shell Heat Transfer Coefficient"
1121        Shell.HeatTransfer.hshell=HE.ShellFilmCoeff(Shell.HeatTransfer.Ji,Properties.Cold.Average.Cp,Properties.Cold.Average.Mw,Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Sm,Shell.HeatTransfer.PR,Shell.HeatTransfer.Jtotal,Shell.HeatTransfer.Phi);
1122
1123"Shell Pressure Drop Cross Flow"
1124        Shell.PressureDrop.PdCross      = HE.DeltaPcross(Shell.HeatTransfer.Re,Baffles.Ls,Baffles.Lso,Baffles.Lsi,Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Phi,Properties.Cold.Average.rho);
1125
1126"Shell Pressure Baffle Window"
1127        Shell.PressureDrop.Pdwindow     = HE.DeltaPwindow(Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Sm,Properties.Cold.Average.rho,Properties.Cold.Average.Mu,Baffles.Ls);
1128
1129"Shell Pressure End Zones"
1130        Shell.PressureDrop.PdEndZones  = HE.DeltaPendZones(Shell.HeatTransfer.Re,Baffles.Ls,Baffles.Lso,Baffles.Lsi,Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Phi,Properties.Cold.Average.rho);
1131
1132
1133end
1134
1135
1136
1137end
1138
1139Model F_Shell_LMTD_Det                  as Heatex_Detailed_LMTD
1140#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1141#       Shell and Tubes Heat Exchanger with 2 shell pass - LMTD Method
1142#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1143
1144EQUATIONS
1145
1146"LMTD Correction Factor"
1147        Fc = HE.FshellCorrectionFactor(Inlet.Hot.T,Outlet.Hot.T,Inlet.Cold.T,Outlet.Cold.T);
1148
1149"Counter Flow LMTD"
1150        LMTD = HE.CounterLMTD(Inlet.Hot.T,Outlet.Hot.T,Inlet.Cold.T,Outlet.Cold.T);
1151
1152"Js Factor"     
1153        Shell.HeatTransfer.Js = HE.JsFactor(Shell.HeatTransfer.Re,Baffles.Lsi,Baffles.Lso,Baffles.Ls);
1154
1155if side equal 1
1156       
1157        then
1158       
1159"Shell Side Reynolds Number"
1160        Shell.HeatTransfer.Re=HE.ShellReynoldsNumber(Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Sm,Properties.Hot.Average.Mu);
1161
1162"Shell Heat Transfer Coefficient"
1163        Shell.HeatTransfer.hshell=HE.ShellFilmCoeff(Shell.HeatTransfer.Ji,Properties.Hot.Average.Cp,Properties.Hot.Average.Mw,Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Sm,Shell.HeatTransfer.PR,Shell.HeatTransfer.Jtotal,Shell.HeatTransfer.Phi);
1164
1165"Shell Pressure Drop Cross Flow"
1166        Shell.PressureDrop.PdCross              = HE.DeltaPcross(Shell.HeatTransfer.Re,Baffles.Ls,Baffles.Lso,Baffles.Lsi,Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Phi,Properties.Hot.Average.rho);
1167
1168"Shell Pressure Baffle Window"
1169        Shell.PressureDrop.Pdwindow             = HE.DeltaPwindow(Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Sm,Properties.Hot.Average.rho,Properties.Hot.Average.Mu,Baffles.Ls);
1170
1171"Shell Pressure End Zones"
1172        Shell.PressureDrop.PdEndZones  = HE.DeltaPendZones(Shell.HeatTransfer.Re,Baffles.Ls,Baffles.Lso,Baffles.Lsi,Properties.Hot.Inlet.Fw,Shell.HeatTransfer.Phi,Properties.Hot.Average.rho);
1173
1174
1175        else
1176
1177"Shell Side Reynolds Number"
1178        Shell.HeatTransfer.Re=HE.ShellReynoldsNumber(Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Sm,Properties.Cold.Average.Mu);
1179
1180"Shell Heat Transfer Coefficient"
1181        Shell.HeatTransfer.hshell=HE.ShellFilmCoeff(Shell.HeatTransfer.Ji,Properties.Cold.Average.Cp,Properties.Cold.Average.Mw,Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Sm,Shell.HeatTransfer.PR,Shell.HeatTransfer.Jtotal,Shell.HeatTransfer.Phi);
1182
1183"Shell Pressure Drop Cross Flow"
1184        Shell.PressureDrop.PdCross      = HE.DeltaPcross(Shell.HeatTransfer.Re,Baffles.Ls,Baffles.Lso,Baffles.Lsi,Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Phi,Properties.Cold.Average.rho);
1185
1186"Shell Pressure Baffle Window"
1187        Shell.PressureDrop.Pdwindow     = HE.DeltaPwindow(Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Sm,Properties.Cold.Average.rho,Properties.Cold.Average.Mu,Baffles.Ls);
1188
1189"Shell Pressure End Zones"
1190        Shell.PressureDrop.PdEndZones  = HE.DeltaPendZones(Shell.HeatTransfer.Re,Baffles.Ls,Baffles.Lso,Baffles.Lsi,Properties.Cold.Inlet.Fw,Shell.HeatTransfer.Phi,Properties.Cold.Average.rho);
1191
1192
1193end
1194
1195
1196
1197end
1198
1199Model Multipass_LMTD_Det         
1200#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1201#       Shell and Tubes Heat Exchanger In Series with 1 shell pass - LMTD Method
1202#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1203PARAMETERS
1204
1205Nshell          as Integer              (Brief="N Shell in Series",Default=2);
1206ext     HE              as CalcObject   (Brief="STHE Calculations",File="heatex.dll");
1207ext PP          as CalcObject   (Brief="External Physical Properties");
1208side        as Integer          (Brief="Fluid Alocation",Lower=0,Upper=1);
1209Pi                      as constant     (Brief="Pi Number",Default=3.14159265);
1210
1211#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1212#       Shell Geometrical Parameters
1213#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1214Tpass                   as Integer              (Brief="Number of Tube Passes",Lower=1);
1215Nss                             as Integer              (Brief="Number of Sealing Strips pairs",Lower=1);
1216Dishell                 as length               (Brief="Inside Shell Diameter",Lower=10e-6);
1217Donozzle_Shell  as length               (Brief="Shell Outlet Nozzle Diameter",Lower=10e-6);
1218Dinozzle_Shell  as length               (Brief="Shell Inlet Nozzle Diameter",Lower=10e-6);
1219Hinozzle_Shell  as length               (Brief="Height Under Shell Inlet Nozzle",Lower=10e-6);
1220Honozzle_Shell  as length               (Brief="Height Under Shell Outlet Nozzle",Lower=10e-6);
1221Lcf                     as length               (Brief="Bundle-to-Shell Clearance",Lower=10e-8);
1222#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1223#       Tubes Geometrical Parameters
1224#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1225Ntt                             as Integer              (Brief="Total Number of Tubes in Shell",Default=100,Lower=1);
1226Pattern         as Integer              (Brief="Tube Layout Characteristic Angle",Lower=30);
1227Ltube                   as length               (Brief="Effective Tube Length",Lower=0.1);
1228pitch                   as length               (Brief="Tube Pitch",Lower=1e-8);
1229Kwall                   as conductivity (Brief="Tube Wall Material Thermal Conductivity");
1230Dotube                  as length               (Brief="Tube Outside Diameter",Lower=10e-6);
1231Ditube                  as length               (Brief="Tube Inside Diameter",Lower=10e-6);
1232Donozzle_Tube   as length               (Brief="Tube Outlet Nozzle Diameter",Lower=10e-6);
1233Dinozzle_Tube   as length               (Brief="Tube Inlett Nozzle Diameter",Lower=10e-6);
1234#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1235#       Baffles Geometrical Parameters
1236#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1237Bc                      as Integer              (Brief="Baffle Cut",Default=25,Lower=25);
1238Nb              as Real                 (Brief="Number of Baffles",Lower=1);
1239Lcd                     as length               (Brief="Baffle-to-Shell Clearance",Lower=10e-8);
1240Ltd                             as length               (Brief="Tube-to-Bafflehole Clearance",Lower=10e-8);
1241#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1242VARIABLES
1243
1244LMTD(Nshell)            as temp_delta   (Brief="Logarithmic Mean Temperature Difference",Lower=10);
1245Fc(Nshell)                      as positive             (Brief="LMTD Correction Factor",Lower=0.75);
1246MTD(Nshell)                     as temp_delta   (Brief="Mean Temperature Difference");
1247Unity(Nshell)           as HeatExchangerDetailed_Basic;
1248
1249CONNECTIONS
1250
1251Unity([1:Nshell-1]).Outlet.Hot  to Unity([2:Nshell]).Inlet.Hot;
1252Unity([2:Nshell]).Outlet.Cold to Unity([1:Nshell-1]).Inlet.Cold;
1253
1254EQUATIONS
1255
1256for i in [1:Nshell]
1257       
1258"Shell Side Cross Flow Area"
1259        Unity(i).Shell.HeatTransfer.Sm = HE.CrossFlowArea(Unity(i).Baffles.Ls);
1260
1261"Ji Factor"
1262        Unity(i).Shell.HeatTransfer.Ji = HE.JiFactor(Unity(i).Shell.HeatTransfer.Re);
1263
1264"Jc Factor"
1265        Unity(i).Shell.HeatTransfer.Jc = HE.JcFactor();
1266       
1267"Jl Factor"
1268        Unity(i).Shell.HeatTransfer.Jl = HE.JlFactor(Unity(i).Shell.HeatTransfer.Sm);
1269
1270"Jb Factor"
1271        Unity(i).Shell.HeatTransfer.Jb = HE.JbFactor(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Shell.HeatTransfer.Sm);
1272
1273"Jr Factor"     
1274        Unity(i).Shell.HeatTransfer.Jr = HE.JrFactor(Unity(i).Shell.HeatTransfer.Re);
1275       
1276"Total J Factor"
1277        Unity(i).Shell.HeatTransfer.Jtotal=Unity(i).Shell.HeatTransfer.Jc*Unity(i).Shell.HeatTransfer.Jl*Unity(i).Shell.HeatTransfer.Jb*Unity(i).Shell.HeatTransfer.Jr*Unity(i).Shell.HeatTransfer.Js;
1278
1279#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1280#  Fluid Alocation
1281#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1282
1283if side equal 1 then
1284       
1285       
1286"Shell Side Phi correction for viscosity"
1287        Unity(i).Shell.HeatTransfer.Phi = HE.PhiCorrection(Unity(i).Properties.Hot.Average.Mu,Unity(i).Properties.Hot.Wall.Mu);
1288       
1289"Tube Side Phi correction for viscosity"
1290        Unity(i).Tubes.HeatTransfer.Phi  = HE.PhiCorrection(Unity(i).Properties.Cold.Average.Mu,Unity(i).Properties.Cold.Wall.Mu);
1291       
1292        else
1293       
1294       
1295"Shell Side Phi correction for viscosity"
1296        Unity(i).Shell.HeatTransfer.Phi = HE.PhiCorrection(Unity(i).Properties.Cold.Average.Mu,Unity(i).Properties.Cold.Wall.Mu);
1297       
1298"Tube Side Phi correction for viscosity"
1299        Unity(i).Tubes.HeatTransfer.Phi  = HE.PhiCorrection(Unity(i).Properties.Hot.Average.Mu,Unity(i).Properties.Hot.Wall.Mu);
1300
1301end
1302
1303
1304if side equal 1
1305       
1306        then
1307       
1308"Cold Wall Temperature"
1309        Unity(i).Properties.Cold.Wall.Twall  = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2;
1310
1311"Hot Wall Temperature" 
1312        Unity(i).Properties.Hot.Wall.Twall  = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2;
1313
1314"Tube Side Velocity"
1315        Unity(i).Tubes.HeatTransfer.Vtube  = HE.TubeVelocity(Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Properties.Cold.Average.rho);
1316
1317"Tube Side Reynolds Number"
1318        Unity(i).Tubes.HeatTransfer.Re = HE.TubeReynoldsNumber(Unity(i).Properties.Cold.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube,Unity(i).Properties.Cold.Average.Mu);
1319       
1320"Tube Side Prandtl Number"
1321        Unity(i).Tubes.HeatTransfer.PR = HE.PrandtlNumber(Unity(i).Properties.Cold.Average.K,Unity(i).Properties.Cold.Average.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Average.Mu);
1322
1323"Tube Side Prandtl Number at Wall"
1324        Unity(i).Tubes.HeatTransfer.PRw = HE.PrandtlNumber(Unity(i).Properties.Cold.Wall.K,Unity(i).Properties.Cold.Wall.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Wall.Mu);
1325
1326"Tube Side Film Coefficient"
1327        Unity(i).Tubes.HeatTransfer.htube= HE.TubeFilmCoeff(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Tubes.HeatTransfer.PR,Unity(i).Properties.Cold.Average.K,Unity(i).Tubes.HeatTransfer.Phi);
1328       
1329"Shell Side Prandtl Number"
1330        Unity(i).Shell.HeatTransfer.PR=HE.PrandtlNumber(Unity(i).Properties.Hot.Average.K,Unity(i).Properties.Hot.Average.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Average.Mu);   
1331
1332"Shell Side Prandtl Number at Wall"
1333        Unity(i).Shell.HeatTransfer.PRw=HE.PrandtlNumber(Unity(i).Properties.Hot.Wall.K,Unity(i).Properties.Hot.Wall.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Wall.Mu);   
1334
1335"Tube Side Pressure Drop"
1336        Unity(i).Tubes.PressureDrop.PdTube              = HE.DeltaPtube(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Properties.Cold.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube,Unity(i).Tubes.HeatTransfer.Phi);
1337
1338"Pressure Drop Tube Side Inlet Nozzle"
1339        Unity(i).Tubes.PressureDrop.Pdnozzle_in = HE.DeltaPtubeNozzlein(Unity(i).Properties.Cold.Inlet.rho,Unity(i).Properties.Cold.Inlet.Fw);
1340
1341"Velocity Tube Side Inlet Nozzle"
1342        Unity(i).Tubes.PressureDrop.Vnozzle_in  = HE.TubeVelocityNozzlein(Unity(i).Properties.Cold.Inlet.rho,Unity(i).Properties.Cold.Inlet.Fw);
1343
1344"Pressure Drop Tube Side Outlet Nozzle"
1345        Unity(i).Tubes.PressureDrop.Pdnozzle_out        = HE.DeltaPtubeNozzleout(Unity(i).Properties.Cold.Outlet.rho,Unity(i).Properties.Cold.Inlet.Fw);
1346
1347"Velocity Tube Side Outlet Nozzle"
1348        Unity(i).Tubes.PressureDrop.Vnozzle_out = HE.TubeVelocityNozzleout(Unity(i).Properties.Cold.Outlet.rho,Unity(i).Properties.Cold.Inlet.Fw);
1349
1350"Shell Pressure Drop Inlet Nozzle"
1351        Unity(i).Shell.PressureDrop.Pdnozzle_in = HE.DeltaPshellNozzleIn(Unity(i).Properties.Hot.Inlet.rho,Unity(i).Properties.Hot.Inlet.Fw);
1352
1353"Velocity Shell Side Inlet Nozzle"
1354        Unity(i).Shell.PressureDrop.Vnozzle_in  = HE.ShellVelocityNozzleIn(Unity(i).Properties.Hot.Inlet.rho,Unity(i).Properties.Hot.Inlet.Fw);
1355
1356"Shell Pressure Drop Outlet Nozzle"
1357        Unity(i).Shell.PressureDrop.Pdnozzle_out        =HE.DeltaPshellNozzleOut(Unity(i).Properties.Hot.Outlet.rho,Unity(i).Properties.Hot.Inlet.Fw);
1358
1359"Velocity Shell Side Outlet Nozzle"
1360        Unity(i).Shell.PressureDrop.Vnozzle_out =HE.ShellVelocityNozzleOut(Unity(i).Properties.Hot.Outlet.rho,Unity(i).Properties.Hot.Inlet.Fw);
1361
1362"Pressure Drop Hot Stream"
1363        Unity(i).Outlet.Hot.P  = Unity(i).Inlet.Hot.P- Unity(i).Shell.PressureDrop.Pdtotal;     
1364       
1365"Pressure Drop Cold Stream"
1366        Unity(i).Outlet.Cold.P  = Unity(i).Inlet.Cold.P - Unity(i).Tubes.PressureDrop.Pdtotal;
1367
1368
1369        else
1370
1371"Cold Wall Temperature"
1372        Unity(i).Properties.Cold.Wall.Twall  = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2;
1373
1374"Hot Wall Temperature"
1375        Unity(i).Properties.Hot.Wall.Twall  = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2;
1376
1377"Tube Side Velocity"
1378        Unity(i).Tubes.HeatTransfer.Vtube=HE.TubeVelocity(Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Properties.Hot.Average.rho);
1379
1380"Tube Side Reynolds Number"
1381        Unity(i).Tubes.HeatTransfer.Re=HE.TubeReynoldsNumber(Unity(i).Properties.Hot.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube,Unity(i).Properties.Hot.Average.Mu);
1382       
1383"Tube Side Prandtl Number"
1384        Unity(i).Tubes.HeatTransfer.PR=HE.PrandtlNumber(Unity(i).Properties.Hot.Average.K,Unity(i).Properties.Hot.Average.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Average.Mu);
1385
1386"Tube Side Prandtl Number at Wall"
1387        Unity(i).Tubes.HeatTransfer.PRw=HE.PrandtlNumber(Unity(i).Properties.Hot.Wall.K,Unity(i).Properties.Hot.Wall.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Wall.Mu);
1388
1389"Tube Side Film Coefficient"
1390        Unity(i).Tubes.HeatTransfer.htube= HE.TubeFilmCoeff(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Tubes.HeatTransfer.PR,Unity(i).Properties.Hot.Average.K,Unity(i).Tubes.HeatTransfer.Phi);
1391       
1392"Shell Side Prandtl Number"
1393        Unity(i).Shell.HeatTransfer.PR=HE.PrandtlNumber(Unity(i).Properties.Cold.Average.K,Unity(i).Properties.Cold.Average.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Average.Mu);
1394
1395"Shell Side Prandtl Number at Wall"
1396        Unity(i).Shell.HeatTransfer.PRw=HE.PrandtlNumber(Unity(i).Properties.Cold.Wall.K,Unity(i).Properties.Cold.Wall.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Wall.Mu);
1397
1398"Tube Side Pressure Drop"
1399        Unity(i).Tubes.PressureDrop.PdTube              = HE.DeltaPtube(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Properties.Hot.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube,Unity(i).Tubes.HeatTransfer.Phi);
1400
1401"Pressure Drop Tube Side Inlet Nozzle"
1402        Unity(i).Tubes.PressureDrop.Pdnozzle_in = HE.DeltaPtubeNozzlein(Unity(i).Properties.Hot.Inlet.rho,Unity(i).Properties.Hot.Inlet.Fw);
1403
1404"Velocity Tube Side Inlet Nozzle"
1405        Unity(i).Tubes.PressureDrop.Vnozzle_in  = HE.TubeVelocityNozzlein(Unity(i).Properties.Hot.Inlet.rho,Unity(i).Properties.Hot.Inlet.Fw);
1406
1407"Pressure Drop Tube Side Outlet Nozzle"
1408        Unity(i).Tubes.PressureDrop.Pdnozzle_out        = HE.DeltaPtubeNozzleout(Unity(i).Properties.Hot.Outlet.rho,Unity(i).Properties.Hot.Inlet.Fw); 
1409
1410"Velocity Tube Side Outlet Nozzle"
1411        Unity(i).Tubes.PressureDrop.Vnozzle_out = HE.TubeVelocityNozzleout(Unity(i).Properties.Hot.Outlet.rho,Unity(i).Properties.Hot.Inlet.Fw);       
1412
1413"Shell Pressure Drop Inlet Nozzle"
1414        Unity(i).Shell.PressureDrop.Pdnozzle_in = HE.DeltaPshellNozzleIn(Unity(i).Properties.Cold.Inlet.rho,Unity(i).Properties.Cold.Inlet.Fw);
1415
1416"Velocity Shell Side Inlet Nozzle"
1417        Unity(i).Shell.PressureDrop.Vnozzle_in  = HE.ShellVelocityNozzleIn(Unity(i).Properties.Cold.Inlet.rho,Unity(i).Properties.Cold.Inlet.Fw);
1418
1419"Shell Pressure Drop Outlet Nozzle"
1420        Unity(i).Shell.PressureDrop.Pdnozzle_out = HE.DeltaPshellNozzleOut(Unity(i).Properties.Cold.Outlet.rho,Unity(i).Properties.Cold.Inlet.Fw);
1421
1422"Velocity Shell Side Outlet Nozzle"
1423        Unity(i).Shell.PressureDrop.Vnozzle_out  = HE.ShellVelocityNozzleOut(Unity(i).Properties.Cold.Outlet.rho,Unity(i).Properties.Cold.Inlet.Fw);
1424
1425"Pressure Drop Hot Stream"
1426        Unity(i).Outlet.Hot.P  = Unity(i).Inlet.Hot.P- Unity(i).Tubes.PressureDrop.Pdtotal;     
1427       
1428"Pressure Drop Cold Stream"
1429        Unity(i).Outlet.Cold.P  = Unity(i).Inlet.Cold.P - Unity(i).Shell.PressureDrop.Pdtotal;
1430
1431
1432end
1433
1434"Tube Resistance"       
1435        Unity(i).Resistances.Rtube*(Unity(i).Tubes.HeatTransfer.htube*Ditube) = Dotube;
1436       
1437"Wall Resistance"
1438        Unity(i).Resistances.Rwall=Dotube*ln(Dotube/Ditube)/(2*Kwall);
1439       
1440"Shell Resistance"
1441        Unity(i).Resistances.Rshell*(Unity(i).Shell.HeatTransfer.hshell)=1;
1442       
1443"Overall Heat Transfer Coefficient"
1444        Unity(i).Details.U=1/(Dotube/(Unity(i).Tubes.HeatTransfer.htube*Ditube)+(Dotube*ln(Dotube/Ditube)/(2*Kwall))+(1/(Unity(i).Shell.HeatTransfer.hshell)));
1445
1446"Exchange Surface Area"
1447        Unity(i).Details.A=Pi*Dotube*Ntt*Ltube;
1448
1449"Baffles Spacing"
1450        Ltube = Unity(i).Baffles.Lsi+Unity(i).Baffles.Lso+Unity(i).Baffles.Ls*(Nb-1);
1451       
1452"LMTD Correction Factor"
1453        Fc(i) = HE.EshellCorrectionFactor(Unity(i).Inlet.Hot.T,Unity(i).Outlet.Hot.T,Unity(i).Inlet.Cold.T,Unity(i).Outlet.Cold.T);
1454
1455"Counter Flow LMTD"
1456        LMTD(i) = HE.CounterLMTD(Unity(i).Inlet.Hot.T,Unity(i).Outlet.Hot.T,Unity(i).Inlet.Cold.T,Unity(i).Outlet.Cold.T);
1457
1458"Js Factor"     
1459        Unity(i).Shell.HeatTransfer.Js = HE.JsFactor(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Lsi,Unity(i).Baffles.Lso,Unity(i).Baffles.Ls);
1460
1461if side equal 1
1462       
1463        then
1464       
1465"Shell Side Reynolds Number"
1466        Unity(i).Shell.HeatTransfer.Re=HE.ShellReynoldsNumber(Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Hot.Average.Mu);
1467
1468"Shell Heat Transfer Coefficient"
1469        Unity(i).Shell.HeatTransfer.hshell=HE.ShellFilmCoeff(Unity(i).Shell.HeatTransfer.Ji,Unity(i).Properties.Hot.Average.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Shell.HeatTransfer.PR,Unity(i).Shell.HeatTransfer.Jtotal,Unity(i).Shell.HeatTransfer.Phi);
1470
1471"Shell Pressure Drop Cross Flow"
1472        Unity(i).Shell.PressureDrop.PdCross             = HE.DeltaPcross(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Hot.Average.rho);
1473
1474"Shell Pressure Baffle Window"
1475        Unity(i).Shell.PressureDrop.Pdwindow            = HE.DeltaPwindow(Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Hot.Average.rho,Unity(i).Properties.Hot.Average.Mu,Unity(i).Baffles.Ls);
1476
1477"Shell Pressure End Zones"
1478        Unity(i).Shell.PressureDrop.PdEndZones  = HE.DeltaPendZones(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Hot.Average.rho);
1479
1480
1481        else
1482
1483"Shell Side Reynolds Number"
1484        Unity(i).Shell.HeatTransfer.Re=HE.ShellReynoldsNumber(Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Cold.Average.Mu);
1485
1486"Shell Heat Transfer Coefficient"
1487        Unity(i).Shell.HeatTransfer.hshell=HE.ShellFilmCoeff(Unity(i).Shell.HeatTransfer.Ji,Unity(i).Properties.Cold.Average.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Shell.HeatTransfer.PR,Unity(i).Shell.HeatTransfer.Jtotal,Unity(i).Shell.HeatTransfer.Phi);
1488
1489"Shell Pressure Drop Cross Flow"
1490        Unity(i).Shell.PressureDrop.PdCross      = HE.DeltaPcross(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Cold.Average.rho);
1491
1492"Shell Pressure Baffle Window"
1493        Unity(i).Shell.PressureDrop.Pdwindow     = HE.DeltaPwindow(Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Cold.Average.rho,Unity(i).Properties.Cold.Average.Mu,Unity(i).Baffles.Ls);
1494
1495"Shell Pressure End Zones"
1496        Unity(i).Shell.PressureDrop.PdEndZones  = HE.DeltaPendZones(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Cold.Average.rho);
1497
1498
1499end
1500
1501"Exchange Surface Area"
1502        Unity(i).Details.Q   = Unity(i).Details.U*Unity(i).Details.A*Fc(i)*LMTD(i);
1503       
1504"Mean Temperature Difference"   
1505        MTD(i)   = Fc(i)*LMTD(i);
1506
1507end
1508
1509        SET
1510#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1511#  Set Parameters for heatex Calculation
1512#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
1513        Pi                              = 3.14159265;
1514        HE.Tpass                        = Tpass;
1515        HE.Nss                          = Nss;
1516        HE.Ntt                          = Ntt;
1517        HE.Pattern                      = Pattern;
1518        HE.Bc                           = Bc;
1519        HE.Donozzle_Shell       = Donozzle_Shell;
1520        HE.Dinozzle_Shell       = Dinozzle_Shell;
1521        HE.Honozzle_Shell       = Honozzle_Shell;
1522        HE.Hinozzle_Shell       = Hinozzle_Shell;
1523        HE.Donozzle_Tube        = Donozzle_Tube;
1524        HE.Dinozzle_Tube        = Dinozzle_Tube;
1525        HE.Nb                       = Nb;
1526        HE.Dishell                      = Dishell;             
1527        HE.Lcf                          = Lcf; 
1528        HE.Ltube                        = Ltube;       
1529        HE.pitch                        = pitch;               
1530        HE.Dotube                       = Dotube;       
1531        HE.Ditube                       = Ditube;       
1532        HE.Lcd                          = Lcd;
1533        HE.Ltd                          = Ltd; 
1534        side                            = HE.FluidAlocation();
1535
1536end
1537