def testFluid(): #f = Fluid('R134a') f = Fluid('Hydrogen') #f = Fluid('Water') BibTexKeys = [ "EOS", "CP0", "VISCOSITY", "CONDUCTIVITY", "ECS_LENNARD_JONES", "ECS_FITS", "SURFACE_TENSION" ] for key in BibTexKeys: print("{0} : {1}".format(key, f.BibTeXKey(key))) print("Name: {0}".format(f.name())) print("Aliases: {0}".format(f.aliases())) print("{0} : {1}".format('EOS reference', f.EOSReference())) print("{0} : {1}".format('Transpor reference', f.TransportReference())) print("{0} : {1} [g/mol]".format('Molar mass', f.molarMass())) print("{0} : {1}".format('Accentric factor', f.accentricFactor())) print("{0} : {1}".format('Critical point', f.critical())) print("{0} : {1}".format('Tripple point', f.tripple())) print("{0} : {1}".format('Fluid limits', f.fluidLimits())) print("CAS: {0}".format(f.CAS())) print("ASHRAE34: {0}".format(f.ASHRAE34())) p = (f.critical()['p'] + f.tripple()['p']) / 2 print("Saturation @ {0} bar {1}".format(p / 1e5, f.saturation_p(p))) T = (f.critical()['T'] + f.tripple()['T']) / 2 print("Saturation @ {0} K {1}".format(T, f.saturation_T(T)))
def testState(): s1 = FluidState('ParaHydrogen') s1.update('P', 700e5, 'T', 288) print("p={0}".format(s1.p())) print("T={0}".format(s1.T())) print("rho={0}".format(s1.rho())) print("h={0}".format(s1.h())) print("s={0}".format(s1.s())) print("cp={0}".format(s1.cp())) print("cv={0}".format(s1.cv())) print("gamma={0}".format(s1.gamma())) print("dpdt_v={0}".format(s1.dpdt_v())) print("dpdv_t={0}".format(s1.dpdv_t())) print("beta={0}".format(s1.beta())) print("mu={0}".format(s1.mu())) print("lambfa={0}".format(s1.cond())) print("Pr={0}".format(s1.Pr())) s2 = FluidState('ParaHydrogen') s2.update_Tp(s1.T(), s1.p()) print("update_Tp rho={0}".format(s2.rho())) s3 = FluidState('ParaHydrogen') s3.update_Trho(s1.T(), s1.rho()) print("update_Trho p={0}".format(s3.p())) s4 = FluidState('ParaHydrogen') s4.update_prho(s1.p(), s1.rho()) print("update_prho T={0}".format(s4.T())) s5 = FluidState('ParaHydrogen') s5.update_ph(s1.p(), s1.h()) print("update_ph ={0}".format(s5.T())) s6 = FluidState('ParaHydrogen') s6.update_ps(s1.p(), s1.s()) print("update_ps T={0}".format(s6.T())) s7 = FluidState('ParaHydrogen') s7.update_pq(1e5, 0) print("update_pq T={0}".format(s7.T())) s8 = FluidState('ParaHydrogen') s8.update_Tq(25, 0) print("update_Tq p={0}".format(s8.p())) print('--------------------') print('Initialize state from fluid') h2 = Fluid('ParaHydrogen') s9 = FluidState(h2) s9.update_Tp(s1.T(), s1.p()) print("rho={0}".format(s9.rho()))
def compute(self): R = 8.314462 mMol = Fluid(self.fluidName).molarMass / 1e3 self.T = (self.T1 + self.T2) / 2 state = FluidState(self.fluidName) state.update_Tp(self.T, self.p) self.rho = state.rho self.mu = state.mu self.c = np.sqrt(8 * R * state.T / (np.pi * mMol)) self.l = (2 * self.mu) / (state.rho * self.c) self.Kn = self.l / self.d self.f = 16. / 15 * (1 / state.Pr) * (state.gamma / (state.gamma + 1)) self.fct = 1. / (1 + 15. / 4 * self.Kn) #* self.f self.qDot = self.fct * state.cond / self.d * np.abs(self.T1 - self.T2) Rg = R / mMol self.qDotFM = (state.cp - Rg / 2) * state.p / np.sqrt( 2 * np.pi * Rg * self.T) * np.abs(self.T1 - self.T2)
def initCompute(self, fluid): # Create fluid points self.fluid = Fluid(fluid) self.fp = [] #[FluidState(fluid) for _ in range(numPoints)] self.flows = [] self.solver.cycle = self
def __init__(self, fluidName): self.fluidName = fluidName self.fluid = Fluid(fluidName)
''' Created on Feb 23, 2015 @author: Atanas Pavlov ''' import numpy as np from smo.media.CoolProp.CoolProp import FluidState, Fluid fluid = Fluid('Water') dT = 1e-4 dq = 1e-3 f1 = FluidState(fluid) f2 = FluidState(fluid) f1.update_Tq(273.15 + 150, 0.5) # dqdT_v f2.update_Trho(f1.T + dT, f1.rho) dqdT_v = (f2.q - f1.q) / (f2.T - f1.T) print("dqdT_v() numerical: {:e}, analytical: {:e}".format(dqdT_v, f1.dqdT_v)) # dvdT_q f2.update_Tq(f1.T + dT, f1.q) dvdT_q = (f2.v - f1.v) / (f2.T - f1.T) dvdT_q_1 = f1.q * f1.SatV.dvdT + (1 - f1.q) * f1.SatL.dvdT print("dvdT_q() numerical: {:e}, analytical: {:e}, analytical2: {:e}".format( dvdT_q, f1.dvdT_q, dvdT_q_1))