From 2a46bf62f8afaec0ff0f8f96b39eead12fd60291 Mon Sep 17 00:00:00 2001 From: HomesGH <55833544+HomesGH@users.noreply.github.com> Date: Wed, 29 May 2024 15:14:03 +0200 Subject: [PATCH 1/4] Use records instead of bytearray for major speedup --- tools/ppls1/ppls1/exp/chp.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/tools/ppls1/ppls1/exp/chp.py b/tools/ppls1/ppls1/exp/chp.py index 172a4a7716..af06359173 100644 --- a/tools/ppls1/ppls1/exp/chp.py +++ b/tools/ppls1/ppls1/exp/chp.py @@ -85,12 +85,8 @@ def exp_chp_bin_DF(fname, chp, append=False): writeMode = 'wb' with open(fname, writeMode) as f: - ba=bytearray() - for pi, row in chp.iterrows(): - ba.extend(pack(' Date: Wed, 29 May 2024 15:18:21 +0200 Subject: [PATCH 2/4] Fix and addition of another correlation for shearVisc --- tools/ppls1/ppls1/fluids/shear_visco.py | 60 ++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 6 deletions(-) diff --git a/tools/ppls1/ppls1/fluids/shear_visco.py b/tools/ppls1/ppls1/fluids/shear_visco.py index 0d706b791d..f336ac2f94 100644 --- a/tools/ppls1/ppls1/fluids/shear_visco.py +++ b/tools/ppls1/ppls1/fluids/shear_visco.py @@ -136,6 +136,7 @@ def eta(T,rho,fluid): na=6.02214076e23 kb=1.380649e-23 + u_mass=1.660539e-27 if fluid == 'LJTS': fluid = 'Argon' @@ -164,8 +165,8 @@ def eta(T,rho,fluid): T = T/tc*150.687 rho = rho/sig**3*1e30/na*1e-3 # refTime, refLambda: tref, lref - tref=sig*1e-10*np.sqrt(mass*1.660538e-27/(kb*eps)) - eta_ref=1e3*kb/(sig*1e-10*tref) # [kg/m-s] TODO + tref=sig*1e-10*np.sqrt(mass*u_mass/(kb*eps)) + eta_ref=1e6*mass*u_mass/(sig*1e-10*tref) # Lemmon gives [uPa s] (see Table V in Paper) elif units == 'SI': pass else: @@ -199,12 +200,59 @@ def eta_lauten(T,rho): eta_l = eta_l + coeff[i,0]*(T**(coeff[i,1]))*(rho**(coeff[i,2])) return eta_l + +#%% Get dynamic viscosity of LJfull fluid with correlation by Galliero, Ind. Eng. Chem. Res., vol. 44, 2005 +def eta_galliero(T,rho): + ''' + Get dynamic viscosity of LJfull fluid (Galliero) + + :param float T: Temperature + :param float rho: Density + :return: float eta_l: dynamic viscosity + ''' + + def omega_22(T): + a_22=1.16145 + b_22=0.14874 + c_22=0.52487 + d_22=0.7732 + e_22=2.16178 + f_22=2.43787 + omega_22 = a_22/T**b_22+c_22*np.exp(-d_22*T)+e_22*np.exp(-f_22*T) + return omega_22 + + b1=0.062692 + b2=4.095577 + b3=-8.743269e-6 + b4=11.12492 + b5=2.542477e-6 + b6=14.863984 + + tmp1 = 0.17630924*np.sqrt(T)/omega_22(T) + tmp2 = b1*(np.exp(b2*rho)-1)+b3*(np.exp(b4*rho)-1)+b5*(np.exp(b6*rho)-1)/T**2 + + return tmp1+tmp2 + + +#%% Tests if __name__ == '__main__': - print('Running test with LJTS ...') fluid = 'LJTS' - T = 0.8 - rho = 0.55 - + T = 0.95 + rho = 0.7 + print(f'Running test with {fluid} ...') print('Eta Lemmon: '+str(eta_lemmon(T,rho,fluid))) print('Eta Lautenschlager: '+str(eta_lauten(T,rho))) + fluid = 'LJfull' + T = 1.1 + rho = 0.7 + print(f'Running test with {fluid} ...') + print('Eta Lemmon: '+str(eta_lemmon(T,rho,fluid))) + print('Eta Galliero: '+str(eta_galliero(T,rho))) + + fluid = 'Argon' + T = 200 + rho = 10 + print(f'Running test with {fluid} ...') + print('Eta Lemmon: '+str(eta_lemmon(T,rho,fluid))) + print('Eta Lemmon Lit: 25.5662') From 1e71d61e176097351bf9c895c1b09575bf4a1af2 Mon Sep 17 00:00:00 2001 From: HomesGH <55833544+HomesGH@users.noreply.github.com> Date: Wed, 29 May 2024 15:20:05 +0200 Subject: [PATCH 3/4] Fix in thermoCond --- tools/ppls1/ppls1/fluids/therm_cond.py | 31 ++++++++++++++++++++------ 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/tools/ppls1/ppls1/fluids/therm_cond.py b/tools/ppls1/ppls1/fluids/therm_cond.py index 0888defcff..c9404d091d 100644 --- a/tools/ppls1/ppls1/fluids/therm_cond.py +++ b/tools/ppls1/ppls1/fluids/therm_cond.py @@ -35,6 +35,23 @@ def eta0(T,fluid): #eta0=(0.168729283*np.sqrt(T)) / (sig**2*Omega(Tstar,fluid)) # Monika return eta0 #8.18940 #22.7241 #8.18940 #eta0 + def etar(tau,delta,fluid): + summe=0 + for ri in range(0,len(tab3[fluid])): + i,Ni,ti,di,li=tab3[fluid]['i'][ri],tab3[fluid]['Ni'][ri],tab3[fluid]['ti'][ri],tab3[fluid]['di'][ri],tab3[fluid]['li'][ri] + if li==0: + gamma=0 + else: + gamma=1 + summe+=Ni*tau**ti*delta**di*np.exp(-gamma*delta**li) + return summe + + def eta(T,rho,fluid): + Tc,rhoc=tab1[fluid][0],tab1[fluid][1] + tau,delta=Tc/T,rho/rhoc + eta=eta0(T,fluid)+etar(tau,delta,fluid) + return eta + def lam0(T,fluid): Tc=tab1[fluid][0] tau=Tc/T @@ -139,6 +156,7 @@ def lamr(tau,delta,fluid): na=6.02214076e23 kb=1.380649e-23 + u_mass=1.660539e-27 if fluid == 'LJTS': fluid = 'Argon' @@ -167,8 +185,8 @@ def lamr(tau,delta,fluid): T = T/tc*150.687 rho = rho/sig**3*1e30/na*1e-3 # refTime, refLambda: tref, lref - tref=sig*1e-10*np.sqrt(mass*1.660538e-27/(kb*eps)) - lref=1e3*kb/(sig*1e-10*tref) # [mW/m-K] + tref=sig*1e-10*np.sqrt(mass*u_mass/(kb*eps)) + lref=1e3*kb/(sig*1e-10*tref) # Lemmon gives [mW/m-K] (see Table V in Paper) elif units == 'SI': pass else: @@ -277,13 +295,12 @@ def lambda_guevara_homes(T,rho): lambda_gh = p00 + p10*T + p01*rho + p20*T**2 + p11*T*rho + p02*rho**2 + p30*T**3 + p21*T**2*rho + p12*T*rho**2 + p03*rho**3 return lambda_gh +#%% Tests if __name__ == '__main__': - print('Running test with LJTS ...') fluid = 'LJTS' - T = 0.8 - rho = 0.55 - + T = 0.9 + rho = 0.75 + print(f'Running test with {fluid} ...') print('Lambda Lemmon: '+str(lambda_lemmon(T,rho,fluid))) print('Lambda Lautenschlager: '+str(lambda_lauten(T,rho))) print('Lambda Guevara/Homes: '+str(lambda_guevara_homes(T,rho))) - From 85f76db72fd9b4aa85983fe44534ba0f1b79e659 Mon Sep 17 00:00:00 2001 From: HomesGH <55833544+HomesGH@users.noreply.github.com> Date: Wed, 29 May 2024 15:36:36 +0200 Subject: [PATCH 4/4] Add test for thermoCond of argon --- tools/ppls1/ppls1/fluids/shear_visco.py | 6 ++-- tools/ppls1/ppls1/fluids/therm_cond.py | 47 ++++--------------------- 2 files changed, 10 insertions(+), 43 deletions(-) diff --git a/tools/ppls1/ppls1/fluids/shear_visco.py b/tools/ppls1/ppls1/fluids/shear_visco.py index f336ac2f94..6eec763c42 100644 --- a/tools/ppls1/ppls1/fluids/shear_visco.py +++ b/tools/ppls1/ppls1/fluids/shear_visco.py @@ -251,8 +251,8 @@ def omega_22(T): print('Eta Galliero: '+str(eta_galliero(T,rho))) fluid = 'Argon' - T = 200 - rho = 10 + T = 200.0 + rho = 10.0 print(f'Running test with {fluid} ...') print('Eta Lemmon: '+str(eta_lemmon(T,rho,fluid))) - print('Eta Lemmon Lit: 25.5662') + print('Eta Lemmon Lit: 25.5662') # Value from Table V in Lemmon2004 diff --git a/tools/ppls1/ppls1/fluids/therm_cond.py b/tools/ppls1/ppls1/fluids/therm_cond.py index c9404d091d..186b6dc87a 100644 --- a/tools/ppls1/ppls1/fluids/therm_cond.py +++ b/tools/ppls1/ppls1/fluids/therm_cond.py @@ -35,23 +35,6 @@ def eta0(T,fluid): #eta0=(0.168729283*np.sqrt(T)) / (sig**2*Omega(Tstar,fluid)) # Monika return eta0 #8.18940 #22.7241 #8.18940 #eta0 - def etar(tau,delta,fluid): - summe=0 - for ri in range(0,len(tab3[fluid])): - i,Ni,ti,di,li=tab3[fluid]['i'][ri],tab3[fluid]['Ni'][ri],tab3[fluid]['ti'][ri],tab3[fluid]['di'][ri],tab3[fluid]['li'][ri] - if li==0: - gamma=0 - else: - gamma=1 - summe+=Ni*tau**ti*delta**di*np.exp(-gamma*delta**li) - return summe - - def eta(T,rho,fluid): - Tc,rhoc=tab1[fluid][0],tab1[fluid][1] - tau,delta=Tc/T,rho/rhoc - eta=eta0(T,fluid)+etar(tau,delta,fluid) - return eta - def lam0(T,fluid): Tc=tab1[fluid][0] tau=Tc/T @@ -272,28 +255,6 @@ def lambda_fernandez(T,rho,L,QQ): lambda_f = lambda_f + coeff[i,j]*(T**(i))*(rho**(j)) return lambda_f -#%% Get thermal conductivity of LJTS fluid with data/fit by Guevara/Homes -def lambda_guevara_homes(T,rho): - ''' - Get thermal conductivity of LJTS fluid (Guevara/Homes) - - :param float T: Temperature - :param float rho: Density - :return: float lambda_l: Thermal conductivity - ''' - - p00=-364.1 - p10=-1003 - p01=2292 - p20=-21.11 - p11=2238 - p02=-3751 - p30=601.2 - p21=-1482 - p12=13.63 - p03=1494 - lambda_gh = p00 + p10*T + p01*rho + p20*T**2 + p11*T*rho + p02*rho**2 + p30*T**3 + p21*T**2*rho + p12*T*rho**2 + p03*rho**3 - return lambda_gh #%% Tests if __name__ == '__main__': @@ -303,4 +264,10 @@ def lambda_guevara_homes(T,rho): print(f'Running test with {fluid} ...') print('Lambda Lemmon: '+str(lambda_lemmon(T,rho,fluid))) print('Lambda Lautenschlager: '+str(lambda_lauten(T,rho))) - print('Lambda Guevara/Homes: '+str(lambda_guevara_homes(T,rho))) + + fluid = 'Argon' + T = 100.0 + rho = 33.0 + print(f'Running test with {fluid} ...') + print('Eta Lemmon: '+str(lambda_lemmon(T,rho,fluid))) + print('Eta Lemmon Lit: 111.266') # Value from Table V in Lemmon2004