Source code for LineSet

from __future__ import division
from CoolProp.CoolProp import Props,IsFluidType
from Correlations import f_h_1phase_Tube,TrhoPhase_ph
from math import log,pi,exp

[docs]class LineSetClass(): def __init__(self,**kwargs): #Load the parameters passed in # using the dictionary self.__dict__.update(kwargs)
[docs] def Update(self,**kwargs): #Load the parameters passed in # using the dictionary self.__dict__.update(kwargs)
[docs] def OutputList(self): """ Return a list of parameters for this component for further output It is a list of tuples, and each tuple is formed of items: [0] Description of value [1] Units of value [2] The value itself """ return [ ('Length of tube','m',self.L), ('Supply line OD','m',self.OD), ('Supply line ID','m',self.ID), ('Tube Conductivity','W/m-K',self.k_tube), ('Insulation thickness','m',self.t_insul), ('Insulation conductivity','W/m-K',self.k_insul), ('Air overall HTC','W/m^2-K',self.h_air), ('Air Temperature','K',self.T_air), ('Q Total','W',self.Q), ('Pressure drop ','Pa',self.DP), ('Reynolds # Fluid','-',self.Re_fluid), ('Mean HTC Fluid','W/m^2-K',self.h_fluid), ('Charge','kg',self.Charge), ('Inlet Temperature','K',self.Tin), ('Outlet Temperature','K',self.Tout) ]
[docs] def Calculate(self): if not IsFluidType(self.Ref,'Brine'): #Figure out the inlet state self.Tbubble=Props('T','P',self.pin,'Q',0.0,self.Ref) self.Tdew=Props('T','P',self.pin,'Q',1.0,self.Ref) else: #It is a brine self.Tbubble = None self.Tdew = None self.Tin,self.rhoin,self.Phasein=TrhoPhase_ph(self.Ref,self.pin,self.hin,self.Tbubble,self.Tdew) self.f_fluid, self.h_fluid, self.Re_fluid=f_h_1phase_Tube(self.mdot, self.ID, self.Tin, self.pin, self.Ref) # Specific heat capacity [J/kg-K] cp=Props('C','T',self.Tin,'P',self.pin,self.Ref)*1000 # Density [kg/m^3] rho=Props('D','T',self.Tin, 'P', self.pin, self.Ref) #Thermal resistance of tube R_tube=log(self.OD/self.ID)/(2*pi*self.L*self.k_tube) #Thermal resistance of insulation R_insul=log((self.OD+2.0*self.t_insul)/self.OD)/(2*pi*self.L*self.k_insul); #Convective UA for inside the tube UA_i=pi*self.ID*self.L*self.h_fluid; #Convective UA for the air-side UA_o=pi*(self.OD+2*self.t_insul)*self.L*self.h_air; #Avoid the possibility of division by zero if h_air is zero if UA_o<1e-12: UA_o=1e-12 #Overall UA value UA=1/(1/UA_i+R_tube+R_insul+1/UA_o) #Outlet fluid temperature [K] self.Tout=self.T_air-exp(-UA/(self.mdot*cp))*(self.T_air-self.Tin) #Overall heat transfer rate [W] self.Q=self.mdot*cp*(self.Tout-self.Tin) self.hout=self.hin+self.Q/self.mdot #Pressure drop calculations for superheated refrigerant v=1./rho G=self.mdot/(pi*self.ID**2/4.0) #Pressure gradient using Darcy friction factor dpdz=-self.f_fluid*v*G**2/(2.*self.ID) #Pressure gradient self.DP=dpdz*self.L #Charge in Line set [kg] self.Charge=pi*self.ID**2/4.0*self.L*rho