Exemple #1
0
def enthalpy(tau,delta,ni,ti,vi,ui,R,ho,so,rho_c,Tc,n_ideal_gas_terms_pow,n_ideal_gas_terms_exp,To,rho_o,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A,M_amu,ideal_n,ideal_gamma,ideal_eqn_type):       
        from helmholtz_functions.ideal_helmholtz_energy_dtau_from_Cp_o_over_R import ideal_helmholtz_energy_dtau_from_Cp_o_over_R
        from helmholtz_functions.d_alpha_d_tau import d_alpha_d_tau
        from helmholtz_functions.d_alpha_d_delta import d_alpha_d_delta
        from helmholtz_functions.ideal_helmholtz_from_coef_dtau import ideal_helmholtz_from_coef_dtau
        from pylab import zeros
        dalpha_tau=zeros(len(tau))
        dalpha_delta=zeros(len(tau))
        dalpha_o=zeros(len(tau))
        #M_H2=2.01594
        T=Tc/tau
        if(ideal_eqn_type=='Cp'):
                for i in range(0,len(tau)):
                        dalpha_o[i]=ideal_helmholtz_energy_dtau_from_Cp_o_over_R(ni,ti,vi,ui,R,ho,so,rho_c/M_amu,Tc,tau[i],delta[i],n_ideal_gas_terms_pow,n_ideal_gas_terms_exp,To,rho_o)
        if(ideal_eqn_type=='Coef'):
                for i in range(0,len(tau)):
                        dalpha_o[i]=ideal_helmholtz_from_coef_dtau(delta[i],tau[i],ideal_n,ideal_gamma)
        if(ideal_eqn_type=='none'):
                dalpha_o[1]==0.0        
        
        for i in range(0,len(tau)):                
                dalpha_tau[i]=d_alpha_d_tau(tau[i],delta[i],N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
                dalpha_delta[i]=d_alpha_d_delta(tau[i],delta[i],N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
        R_specific=R/M_amu
        h1=R_specific*T*1.0
	h2=R_specific*T*tau*(dalpha_o+dalpha_tau)
	h3=R_specific*T*delta*dalpha_delta
	h=h1+h2+h3
	return h
Exemple #2
0
def cp_h2_mod(T,Pin):
	from helmholtz_functions.ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R import ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R
	from helmholtz_functions.d_alpha_d_tau import d_alpha_d_tau 
	from helmholtz_functions.d_alpha_d_delta import d_alpha_d_delta
        from helmholtz_functions.d_alpha_d_tau_d_tau import d_alpha_d_tau_d_tau
        from helmholtz_functions.d_alpha_d_delta_d_delta import d_alpha_d_delta_d_delta
        from helmholtz_functions.d_alpha_d_delta_d_tau import d_alpha_d_delta_d_tau
        from numpy import asarray,zeros
        from scipy.optimize import fsolve
        from residual_pressure import residual_pressure
        bars_to_kPa=100
        
        P=Pin*bars_to_kPa
        R=8.314472
        R_hydrogen=R/2.01594
        M_amu=2.01594
        density_guess=P/(R_hydrogen*T)
        rho_c=15.508*2.01594 # mol/l -> kg/m^3 factors of 1000 liter converstion, and gram conversion cancel
        delta_guess=density_guess/rho_c
        
        
        ########################################
        #Hydrogen parameters from Leachman,2007
        ########################################
	Tc=33.145
        
	tau=Tc/T
	R=8.314472
        R_hydrogen=R/2.01594
	N_i=[-6.93643,0.01,2.1101,4.52059,0.732564,-1.34086,0.130985,-0.777414,0.351944,-0.0211716,0.0226312,0.032187,-0.0231752,0.0557346];
	t_i=[0.6844,1,0.989,0.489,0.803,1.1444,1.409,1.754,1.311,4.187,5.646,0.791,7.249,2.986]
	d_i=[1,4,1,1,2,2,3,1,3,2,1,3,1,1]
	p_i=[0,0,0,0,0,0,0,1,1,0/1,0/1,0/1,0/1,0/1]
	phi_i=[0,0,0,0,0,0,0,0,0,1.685,0.489,0.103,2.506,1.607]# Not, we need to use -sign here
	Beta_i=[0,0,0,0,0,0,0,0,0, 0.171,0.2245,0.1304,0.2785,0.3967] #Note, we need to use - sign here
	gamma_i=[0,0,0,0,0,0,0,0,0,0.7164,1.3444,1.4517,0.7204,1.5445] 
	D_i=[0,0,0,0,0,0,0,0,0,1.506,0.156,1.736,0.67,1.6620]
	Tc=33.145
        rho_c=15.508*2.01594 # mol/l -> kg/m^3 factors of 1000 liter converstion, and gram conversion cancel
        #delta=density/rho_c
	tau=Tc/T
	
	
	ni=2.5   
	ti=0.0
        vi=[1.616,-0.4117,-0.792,0.758,1.217] 
        ui=[531,751,1989,2484,6859]
        
	R=8.314472           #J/mol/K
	ho = 7206.9069892047 #J/mol
	so = 143.4846187346  #J/mol/K
	n_power_terms=9
	n_gaussian_terms=5
	n_critical_terms=0
	n_power_terms_w_exp=0
	n_ideal_gas_terms_pow=0
	n_ideal_gas_terms_exp=5
	

	RES_a     = zeros(len(ui))
        RES_b     = zeros(len(ui))
        RES_B     = zeros(len(ui))
        RES_C     = zeros(len(ui))
        RES_D     = zeros(len(ui))
        RES_A     = zeros(len(ui))

	To=273.15        
        rho_o=((0.001/(R*To))*1000)
	#############################################
	## End parameters -> should be data structure
	#############################################
	
	delta=fsolve(residual_pressure,delta_guess,args=(P,tau,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A,R,Tc,rho_c,M_amu))
        
	
	dalpha_o_tau_tau=ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R(ni,ti,vi,ui,R,ho,so,rho_c/2.01594,Tc,tau,delta,n_ideal_gas_terms_pow,n_ideal_gas_terms_exp,To,rho_o)
	dalpha_tau=d_alpha_d_tau(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	
	dalpha_delta=d_alpha_d_delta(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	dalpha_tau_tau=d_alpha_d_tau_d_tau(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
        
        dalpha_delta_delta=d_alpha_d_delta_d_delta(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
        
        dalpha_delta_tau=d_alpha_d_delta_d_tau(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	
	#Isochoric heat capacity
	cv=-1.0*R_hydrogen*(tau*tau*(dalpha_o_tau_tau+dalpha_tau_tau))
	#Isobaric heat capacity
	cp=cv+R_hydrogen*pow((1.0+delta*dalpha_delta-delta*tau*dalpha_delta_tau),2)/(1.0+2.0*delta*dalpha_delta+delta*delta*dalpha_delta_delta)
	#default is in kJ/kg-K convert to erg/K/mol for DeBoer's TCM
	#  kJ    1000J    1e7 ergs    1 kg    M_amu g      erg
	#----- * ----- * --------- * ------ * --------  = ------- 
	# kg*K    kJ      1J         1000 g    mol         K mol
	        
        return cp*M_amu*1e7
Exemple #3
0
def enthalpy_normal_h2(T,density):
	from helmholtz_functions.ideal_helmholtz_energy_from_Cp_o_over_R import ideal_helmholtz_energy_from_Cp_o_over_R
	from helmholtz_functions.ideal_helmholtz_energy_dtau_from_Cp_o_over_R import ideal_helmholtz_energy_dtau_from_Cp_o_over_R
	from helmholtz_functions.ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R import ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R
	from helmholtz_functions.d_alpha_d_tau import d_alpha_d_tau 
	from helmholtz_functions.d_alpha_d_delta import d_alpha_d_delta
        from helmholtz_functions.helmholtz_energy_residual import helmholtz_energy_residual
        from helmholtz_functions.d_alpha_d_tau_d_tau import d_alpha_d_tau_d_tau
        from helmholtz_functions.d_alpha_d_delta_d_delta import d_alpha_d_delta_d_delta
        from helmholtz_functions.d_alpha_d_delta_d_tau import d_alpha_d_delta_d_tau
        from helmholtz_functions.ideal_helmholtz_energy_from_Cp_o_over_R_vector import ideal_helmholtz_energy_from_Cp_o_over_R_vector
        from helmholtz_functions.ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R_vector import ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R_vector
        from thermodynamic_functions.Virial_B_vector import Virial_B_vector
        from math import sqrt
        from pylab import zeros
        from numpy import asarray
	N_i=[-6.93643,0.01,2.1101,4.52059,0.732564,-1.34086,0.130985,-0.777414,0.351944,-0.0211716,0.0226312,0.032187,-0.0231752,0.0557346];
	t_i=[0.6844,1,0.989,0.489,0.803,1.1444,1.409,1.754,1.311,4.187,5.646,0.791,7.249,2.986]
	d_i=[1,4,1,1,2,2,3,1,3,2,1,3,1,1]
	p_i=[0,0,0,0,0,0,0,1,1,0/1,0/1,0/1,0/1,0/1]
	phi_i=[0,0,0,0,0,0,0,0,0,1.685,0.489,0.103,2.506,1.607]# Not, we need to use -sign here
	Beta_i=[0,0,0,0,0,0,0,0,0, 0.171,0.2245,0.1304,0.2785,0.3967] #Note, we need to use - sign here
	gamma_i=[0,0,0,0,0,0,0,0,0,0.7164,1.3444,1.4517,0.7204,1.5445] 
	D_i=[0,0,0,0,0,0,0,0,0,1.506,0.156,1.736,0.67,1.6620]
	Tc=33.145
        rho_c=15.508*2.01594 # mol/l -> kg/m^3 factors of 1000 liter converstion, and gram conversion cancel
        delta=density/rho_c
	tau=Tc/T
	R=8.314472
        R_hydrogen=R/2.01594
	
	ni=2.5   
	ti=0.0
        vi=[1.616,-0.4117,-0.792,0.758,1.217] 
        ui=[531,751,1989,2484,6859]
        
	R=8.314472           #J/mol/K
	ho = 7206.9069892047 #J/mol
	so = 143.4846187346  #J/mol/K
	n_power_terms=9
	n_gaussian_terms=5
	n_critical_terms=0
	
	n_ideal_gas_terms_pow=0
	n_ideal_gas_terms_exp=5
	

	RES_a     = zeros(len(ui))
        RES_b     = zeros(len(ui))
        RES_B     = zeros(len(ui))
        RES_C     = zeros(len(ui))
        RES_D     = zeros(len(ui))
        RES_A     = zeros(len(ui))

	To=273.15        
        rho_o=((0.001/(R*To))*1000)
        h2_component_params={'N_i':asarray([-6.93643,0.01,2.1101,4.52059,0.732564,-1.34086,0.130985,-0.777414,0.351944,-0.0211716,0.0226312,0.032187,-0.0231752,0.0557346]),
                             't_i':asarray([0.6844,1,0.989,0.489,0.803,1.1444,1.409,1.754,1.311,4.187,5.646,0.791,7.249,2.986]),
                             'd_i':asarray([1,4,1,1,2,2,3,1,3,2,1,3,1,1]),
                             'p_i':asarray([0,0,0,0,0,0,0,1,1,0/1,0/1,0/1,0/1,0/1]),
                             'phi_i':asarray([0,0,0,0,0,0,0,0,0,1.685,0.489,0.103,2.506,1.607]),
                             'Beta_i':asarray([0,0,0,0,0,0,0,0,0, 0.171,0.2245,0.1304,0.2785,0.3967]), 
                             'gamma_i':asarray([0,0,0,0,0,0,0,0,0,0.7164,1.3444,1.4517,0.7204,1.5445]), 
                             'D_i':asarray([0,0,0,0,0,0,0,0,0,1.506,0.156,1.736,0.67,1.6620]),
                             'Tc':float(33.145),
                             'rho_c':float(15.508*2.01594), # mol/l -> kg/m^3 factors of 1000 liter converstion, and gram conversion cancel
                             'R':float(8.314472),
                             'ni':float(2.5),   
                             'ti':float(0.0),
                             'vi':asarray([1.616,-0.4117,-0.792,0.758,1.217]), 
                             'ui':asarray([531,751,1989,2484,6859]),
                             #'R':float(8.314472)           #J/mol/K
                             'ho':float(7206.9069892047), #J/mol
                             'so':float(143.4846187346),  #J/mol/K
                             'n_power_terms':int(9),
                             'n_power_terms_wo_exp':int(7),
                             'n_power_terms_w_exp':int(2),
                             'n_gaussian_terms':int(5),
                             'n_critical_terms':int(0),
                             'n_ideal_gas_terms_pow':int(0),
                             'n_ideal_gas_terms_exp':int(5),
                             'RES_a':zeros(5),
                             'RES_b':zeros(5),
                             'RES_B':zeros(5),
                             'RES_C':zeros(5),
                             'RES_D':zeros(5),
                             'RES_A':zeros(5),
                             'To':float(273.15),        
                             'rho_o':float((0.001/(8.314472*273.15))*1000),
                             'M_amu':float(2.01594),
                             'ideal_eqn_type':'Cp'}
        tau_v=asarray([tau,tau])
        delta_v=asarray([delta,delta])
        
        Virial_b=Virial_B_vector(tau_v,h2_component_params,h2_component_params,h2_component_params,1.0,1.0,rho_c/2.01594,Tc,'pure')
        
	#Calculate Ideal Terms
	ideal=ideal_helmholtz_energy_from_Cp_o_over_R(ni,ti,vi,ui,R,ho,so,rho_c/2.01594,Tc,tau,delta,n_ideal_gas_terms_pow,n_ideal_gas_terms_exp,To,rho_o)
        ideal_v=ideal_helmholtz_energy_from_Cp_o_over_R_vector(ni,ti,vi,ui,R,ho,so,rho_c/2.01594,Tc,tau_v,delta_v,n_ideal_gas_terms_pow,n_ideal_gas_terms_exp,To,rho_o)
        #print ideal-ideal_v
        dalpha_o=ideal_helmholtz_energy_dtau_from_Cp_o_over_R(ni,ti,vi,ui,R,ho,so,rho_c/2.01594,Tc,tau,delta,n_ideal_gas_terms_pow,n_ideal_gas_terms_exp,To,rho_o)
	
	dalpha_o_tau_tau=ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R(ni,ti,vi,ui,R,ho,so,rho_c/2.01594,Tc,tau,delta,n_ideal_gas_terms_pow,n_ideal_gas_terms_exp,To,rho_o)
	dalpha_o_tau_tau_vector=ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R_vector(ni,ti,vi,ui,R,ho,so,rho_c/2.01594,Tc,tau_v,delta_v,n_ideal_gas_terms_pow,n_ideal_gas_terms_exp,To,rho_o)
	#print dalpha_o_tau_tau-dalpha_o_tau_tau_vector
	#Calculate Residual Terms
	residual=helmholtz_energy_residual(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	
	dalpha_tau=d_alpha_d_tau(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	
	dalpha_delta=d_alpha_d_delta(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	print T, Virial_b,dalpha_delta
	dalpha_tau_tau=d_alpha_d_tau_d_tau(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
        
        dalpha_delta_delta=d_alpha_d_delta_d_delta(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
        
        dalpha_delta_tau=d_alpha_d_delta_d_tau(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	
	
        #compressibility Density<-->Pressure
	Z=delta*dalpha_delta+float(1.0)
        #Enthalpy
	h1=R_hydrogen*T*1.0
	h2=R_hydrogen*T*tau*(dalpha_o+dalpha_tau)
	h3=R_hydrogen*T*delta*dalpha_delta
	h=h1+h2+h3
	#Entropy
	s=R_hydrogen*(tau*dalpha_o+tau*dalpha_tau-ideal-residual)
	#Absolute Helmholtz Energy
	absolute_helmholtz_energy=R_hydrogen*T*(ideal+residual)
	#Isochoric heat capacity
	cv=-1.0*R_hydrogen*(tau*tau*(dalpha_o_tau_tau+dalpha_tau_tau))
	#Isobaric heat capacity
	cp=cv+R_hydrogen*pow((1.0+delta*dalpha_delta-delta*tau*dalpha_delta_tau),2)/(1.0+2.0*delta*dalpha_delta+delta*delta*dalpha_delta_delta)
	
	# Speed of Sound?
	
	a1 = 1 + delta*dalpha_delta - delta*tau*dalpha_delta_tau;
        b1 = tau*tau*(dalpha_o_tau_tau + dalpha_tau_tau);
        w = 1 + 2*delta*dalpha_delta + delta*delta*dalpha_delta_delta - a1*a1/b1;
        speed_o_sound=sqrt(R_hydrogen*T*w*1000)
        
        return Z,h,s,absolute_helmholtz_energy,cv,cp,speed_o_sound,R_hydrogen*T*ideal,residual*R_hydrogen*T
Exemple #4
0
def enthalpy_methane(T,density):
	from helmholtz_functions.ideal_helmholtz_energy_from_Cp_o_over_R import ideal_helmholtz_energy_from_Cp_o_over_R
	from helmholtz_functions.ideal_helmholtz_energy_dtau_from_Cp_o_over_R import ideal_helmholtz_energy_dtau_from_Cp_o_over_R
	from helmholtz_functions.ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R import ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R
	from helmholtz_functions.d_alpha_d_tau import d_alpha_d_tau 
	from helmholtz_functions.d_alpha_d_delta import d_alpha_d_delta
        from helmholtz_functions.helmholtz_energy_residual import helmholtz_energy_residual
        from helmholtz_functions.d_alpha_d_tau_d_tau import d_alpha_d_tau_d_tau
        from helmholtz_functions.d_alpha_d_delta_d_delta import d_alpha_d_delta_d_delta
        from helmholtz_functions.d_alpha_d_delta_d_tau import d_alpha_d_delta_d_tau
        from helmholtz_functions.ideal_helmholtz_energy_from_Cp_o_over_R_vector import ideal_helmholtz_energy_from_Cp_o_over_R_vector
        from helmholtz_functions.ideal_helmholtz_energy_dtau_from_Cp_o_over_R_vector import ideal_helmholtz_energy_dtau_from_Cp_o_over_R_vector
        from helmholtz_functions.ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R_vector import ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R_vector
        from thermodynamic_functions.Virial_B_vector import Virial_B_vector
        from math import sqrt
        from pylab import zeros
        from numpy import asarray
        
        N_i=[0.43679010280e-01,
             0.67092361990, 
             -0.17655778590e01, 
             0.85823302410, 
             -0.12065130520e01,
             0.51204672200, 
             -0.40000107910e-03 ,
             -0.12478424230e-01,
             0.31002697010e-01,
             0.17547485220e-02,
             -0.31719216050e-05,
             -0.22403468400e-05,
             0.29470561560e-06,
             0.18304879090, 
             0.15118836790,
             -0.42893638770,
             0.68940024460e-01,
             -0.14083139960e-01,
             -0.30630548300e-01,
             -0.29699067080e-01,
             -0.19320408310e-01,
             -0.11057399590,
             0.99525489950e-01,
             0.85484378250e-02, 
             -0.61505556620e-01,
             -0.42917924230e-01,
             -0.18132072900e-01,
             0.34459047600e-01,
             -0.23859194500e-02,
             -0.11590949390e-01,
             0.66416936020e-01,
             -0.23715495900e-01, 
             -0.39616249050e-01, 
             -0.13872920440e-01,
             0.33894895990e-01,
             -0.29273787530e-02,
             0.93247999460e-04,
             -0.62871715180e01,
             0.12710694670e02,
             -0.64239534660e01]  
	t_i= [-0.5, 
	       0.5,
	       1.0,
	       0.5,
	       1.0,
	       1.5,
	       4.5,
	       0.0,
	       1.0,
	       3.0,
	       1.0,
	       3.0,
	       3.0,
	       0.0,
	       1.0,
	       2.0,
	       0.0,
	       0.0,
	       2.0,
	       2.0,
	       5.0,
	       5.0,
	       5.0,
	       2.0,
	       4.0,
	       12.0,
	       8.0,
	       10.0,
	       10.0,
	       10.0,
	       14.0,
	       12.0,
	       18.0,
	       22.0,
	       18.0,
	       14.0,
	       2.0,
	       0.0,
	       1.0,
	       2.0]
	d_i=[1.0,
	     1.0,
	     1.0,
	     2.0,
	     2.0,
	     2.0,
	     2.0,
	     3.0,
	     4.0,
	     4.0,
	     8.0,
	     9.0,
	     10.0,
	     1.0,
	     1.0,
	     1.0,
	     2.0,
	     4.0,
	     5.0,
	     6.0,
	     1.0,
	     2.0,
	     3.0,
	     4.0,
	     4.0,
	     3.0,
	     5.0,
	     5.0,
	     8.0,
	     2.0,
	     3.0,
	     4.0,
	     4.0,
	     4.0,
	     5.0,
	     6.0,
	     2.0,
	     0.0,
	     0.0,
	     0.0]    
	p_i=[0,
	     0,
	     0,
	     0,
	     0,
	     0,
	     0,
	     0,
	     0,
	     0,
	     0,
	     0,
	     0,
	     1,
	     1,
	     1,
	     1,
	     1,
	     1,
	     1,
	     2,
	     2,
	     2,
	     2,
	     2,
	     3,
	     3,
	     3,
	     3,
	     4,
	     4,
	     4,
	     4,
	     4,
	     4,
	     4,
	     0/1,
	     0/1,
	     0/1,
	     0/1]  
		
	phi_i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20.0,40.0,40.0,40.0]# Not, we need to use -sign here
	Beta_i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,250,250,250] #Note, we need to use - sign here
	gamma_i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.07,1.11,1.11,1.11] 
	D_i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0,1.0,1.0,1.0]
	Tc=190.564
	
        rho_c=10.139128*16.0428 # mol/l -> kg/m^3 factors of 1000 liter converstion, and gram conversion cancel
        delta=density/rho_c
	tau=Tc/T
	R=8.31451
        R_methane=R/16.0428
	
	ni=4.0016  
	ti=0  
        vi=[0.84490000e-02,4.6942000,3.4865000,1.6572000,1.4115000] 
        ui=[648.0,1957.0,3895.0,5705.0,15080.0]

	R=8.31451          #J/mol/K
	ho = 8295.6883966242294	 #J/mol -       -
	so = 28.384819963016852  #J/mol/K
	rho_o=26.326811491312679 #mol/L
	To=111.66720547358069
	n_power_terms=36
	n_gaussian_terms=4
	n_critical_terms=0
	
	n_ideal_gas_terms_pow=0
	n_ideal_gas_terms_exp=5
	

	RES_a     = zeros(len(ui))
        RES_b     = zeros(len(ui))
        RES_B     = zeros(len(ui))
        RES_C     = zeros(len(ui))
        RES_D     = zeros(len(ui))
        RES_A     = zeros(len(ui))

	      
        
        ch4_component_params={'N_i':asarray([0.43679010280e-01,0.67092361990, -0.17655778590e01, 0.85823302410, -0.12065130520e01,0.51204672200, -0.40000107910e-03 ,-0.12478424230e-01,0.31002697010e-01,0.17547485220e-02,-0.31719216050e-05,-0.22403468400e-05,0.29470561560e-06,0.18304879090, 0.15118836790,-0.42893638770,0.68940024460e-01,-0.14083139960e-01,-0.30630548300e-01,-0.29699067080e-01,-0.19320408310e-01,-0.11057399590,0.99525489950e-01,0.85484378250e-02, -0.61505556620e-01,-0.42917924230e-01,-0.18132072900e-01,0.34459047600e-01,-0.23859194500e-02,-0.11590949390e-01,0.66416936020e-01,-0.23715495900e-01, -0.39616249050e-01, -0.13872920440e-01,0.33894895990e-01,-0.29273787530e-02,0.93247999460e-04,-0.62871715180e+01,0.12710694670e+02,-0.64239534660e+01]),
                             't_i':asarray([-0.5, 0.5,1.0,0.5,1.0,1.5,4.5,0.0,1.0,3.0,1.0,3.0,3.0,0.0,1.0,2.0,0.0,0.0,2.0,2.0,5.0,5.0,5.0,2.0,4.0,12.0,8.0,10.0,10.0,10.0,14.0,12.0,18.0,22.0,18.0,14.0,2.0,0.0,1.0,2.0]),
                             'd_i':asarray([1.0,1.0,1.0,2.0,2.0,2.0,2.0,3.0,4.0,4.0,8.0,9.0,10.0,1.0,1.0,1.0,2.0,4.0,5.0,6.0,1.0,2.0,3.0,4.0,4.0,3.0,5.0,5.0,8.0,2.0,3.0,4.0,4.0,4.0,5.0,6.0,2.0,0.0,0.0,0.0]),
                             'p_i':asarray([0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,4,4,2,2,2,2]),
                             'phi_i':asarray([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20.0,40.0,40.0,40.0]),
                             'Beta_i':asarray([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,250,250,250]), 
                             'gamma_i':asarray([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.07,1.11,1.11,1.11]), 
                             'D_i':asarray([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1]),
                             'Tc':float(190.564),
                             'rho_c':float(10.139128*16.0428), # mol/l -> kg/m^3 factors of 1000 liter converstion, and gram conversion cancel
                             'R':float(8.31451),
                             'ni':float(4.0016),   
                             'ti':float(0.0),
                             'vi':asarray([0.84490000e-02,4.6942000,3.4865000,1.6572000,1.4115000]), 
                             'ui':asarray([648.0,1957.0,3895.0,5705.0,15080.0]),
                             #'R':float(8.314472)           #J/mol/K
                             'ho':float(8295.6883966242294), #J/mol
                             'so':float(28.384819963016852),  #J/mol/K
                             'n_power_terms':int(36),
                             'n_power_terms_wo_exp':int(13),
                             'n_power_terms_w_exp':int(36-13),
                             'n_gaussian_terms':int(4),
                             'n_critical_terms':int(0),
                             'n_ideal_gas_terms_pow':int(0),
                             'n_ideal_gas_terms_exp':int(5),
                             'RES_a':zeros(4),
                             'RES_b':zeros(4),
                             'RES_B':zeros(4),
                             'RES_C':zeros(4),
                             'RES_D':zeros(4),
                             'RES_A':zeros(4),
                             'To':float(111.66720547358069),        
                             'rho_o':float(26.326811491312679),
                             'M_amu':float(16.0428),
                             'ideal_eqn_type':'Cp'}
        tau_v=asarray([tau,tau])
        delta_v=asarray([delta,delta])
        
        Virial_b=Virial_B_vector(tau_v,ch4_component_params,ch4_component_params,ch4_component_params,1.0,1.0,rho_c/16.0428,Tc,'pure')
        
	#Calculate Ideal Terms
	ideal=ideal_helmholtz_energy_from_Cp_o_over_R(ni,ti,vi,ui,R,ho,so,rho_c/16.0428,Tc,tau,delta,n_ideal_gas_terms_pow,n_ideal_gas_terms_exp,To,rho_o)
        ideal_v=ideal_helmholtz_energy_from_Cp_o_over_R_vector(ni,ti,vi,ui,R,ho,so,rho_c/16.0428,Tc,tau_v,delta_v,n_ideal_gas_terms_pow,n_ideal_gas_terms_exp,To,rho_o)
        #print ideal-ideal_v
        dalpha_o=ideal_helmholtz_energy_dtau_from_Cp_o_over_R(ni,ti,vi,ui,R,ho,so,rho_c/16.0428,Tc,tau,delta,n_ideal_gas_terms_pow,n_ideal_gas_terms_exp,To,rho_o)
	dalpha_o_v=ideal_helmholtz_energy_dtau_from_Cp_o_over_R_vector(ni,ti,vi,ui,R,ho,so,rho_c/16.0428,Tc,tau_v,delta_v,n_ideal_gas_terms_pow,n_ideal_gas_terms_exp,To,rho_o)
	print dalpha_o-dalpha_o_v
	dalpha_o_tau_tau=ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R(ni,ti,vi,ui,R,ho,so,rho_c/16.0428,Tc,tau,delta,n_ideal_gas_terms_pow,n_ideal_gas_terms_exp,To,rho_o)
	dalpha_o_tau_tau_vector=ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R_vector(ni,ti,vi,ui,R,ho,so,rho_c/16.0428,Tc,tau_v,delta_v,n_ideal_gas_terms_pow,n_ideal_gas_terms_exp,To,rho_o)
	#print dalpha_o_tau_tau-dalpha_o_tau_tau_vector
	#Calculate Residual Terms
	residual=helmholtz_energy_residual(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	
	dalpha_tau=d_alpha_d_tau(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	
	dalpha_delta=d_alpha_d_delta(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	
	dalpha_tau_tau=d_alpha_d_tau_d_tau(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
        
        dalpha_delta_delta=d_alpha_d_delta_d_delta(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
        
        dalpha_delta_tau=d_alpha_d_delta_d_tau(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	
	
        #compressibility Density<-->Pressure
	Z=delta*dalpha_delta+float(1.0)
        #Enthalpy
	h1=R_methane*T*1.0
	h2=R_methane*T*tau*(dalpha_o+dalpha_tau)
	h3=R_methane*T*delta*dalpha_delta
	h=h1+h2+h3
	#Entropy
	s=R_methane*(tau*dalpha_o+tau*dalpha_tau-ideal-residual)
	#Absolute Helmholtz Energy
	absolute_helmholtz_energy=R_methane*T*(ideal+residual)
	#Isochoric heat capacity
	cv=-1.0*R_methane*(tau*tau*(dalpha_o_tau_tau+dalpha_tau_tau))
	#Isobaric heat capacity
	cp=cv+R_methane*pow((1.0+delta*dalpha_delta-delta*tau*dalpha_delta_tau),2)/(1.0+2.0*delta*dalpha_delta+delta*delta*dalpha_delta_delta)
	
	# Speed of Sound?
	
	a1 = 1 + delta*dalpha_delta - delta*tau*dalpha_delta_tau;
        b1 = tau*tau*(dalpha_o_tau_tau + dalpha_tau_tau);
        w = 1 + 2*delta*dalpha_delta + delta*delta*dalpha_delta_delta - a1*a1/b1;
        speed_o_sound=sqrt(R_methane*T*w*1000)
        
        return Z,h,s,absolute_helmholtz_energy,cv,cp,speed_o_sound,R_methane*T*ideal,residual*R_methane*T
Exemple #5
0
def enthalpy_helium(T,density):
        from math import sqrt,exp
        from numpy import sort,asarray,shape,concatenate,power
	from helmholtz_functions.ideal_helmholtz_energy_from_Cp_o_over_R import ideal_helmholtz_energy_from_Cp_o_over_R
	from helmholtz_functions.ideal_helmholtz_energy_dtau_from_Cp_o_over_R import ideal_helmholtz_energy_dtau_from_Cp_o_over_R
	from helmholtz_functions.ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R import ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R	
	from helmholtz_functions.mBWR_to_Helmholtz import mBWR_to_Helmholtz
	from helmholtz_functions.helmholtz_energy_residual import  helmholtz_energy_residual
	from helmholtz_functions.d_alpha_d_tau import d_alpha_d_tau
        from helmholtz_functions.d_alpha_d_tau_d_tau import d_alpha_d_tau_d_tau
	from helmholtz_functions.d_alpha_d_delta import d_alpha_d_delta
	from helmholtz_functions.d_alpha_d_delta_d_delta import d_alpha_d_delta_d_delta
	from helmholtz_functions.d_alpha_d_delta_d_tau import d_alpha_d_delta_d_tau

	M_He=4.0026#02 g/mol
        R=8.314310 #

        R_He=R/M_He
        To=4.230359714841141  #Kelvin
	rho_o=31.163394763964778 # mol/L  
	ho=108.78863197310453    # J/mol
        so=3.6929233790579463    # J/mol/K
	
        
        Tc=5.19530# Kelvin
        rho_c=17.3990 #(mol/L)
                
        mBWR_Coef=[0.4558980227431e-4,#1 
                   0.1260692007853e-2,#2
                   -0.7139657549318e-2,#3
                   0.9728903861441e-2,#4
                   -0.1589302471562e-1,#5
                   0.1454229259623e-5,#6
                   -0.4708238429298e-4,#7
                   0.1132915232587e-2,#8
                   0.2410763742104e-2,#9
                   -0.5093547838381e-8,#10
                   0.2699726927900e-5,#11
                   -0.3954146691114e-4,#12`
                   0.1551961438127e-8,#13
                   0.1050712335785e-7,#14
                   -0.5501158366750e-7,#15
                   -0.1037673478521e-9,#16
                   0.6446881346448e-12,#17
                   0.3298960057071e-10,#18
                   -0.3555585738784e-12,#19
                   -0.6885401367690e-2,#20
                   0.9166109232806e-2,#21
                   -0.6544314242937e-5,#22
                   -0.3315398880031e-4,#23
                   -0.2067693644676e-7,#24
                   0.3850153114958e-7,#25
                   -0.1399040626999e-10,#26
                   -0.1888462892389e-11,#27
                   -0.4595138561035e-14,#28
                   0.6872567403738e-14,#29
                   -0.6097223119177e-18,#30
                   -0.7636186157005e-17,#31
                   0.3848665703556e-17]#32
        rho=density/M_He    #mol/L       
#       delta=rho/rho_c      
#       tau=Tc/T
#	tau_o=Tc/To
#	delta_o=rho_o/rho_c
        
	ni=2.5
	ti=0.0
	vi=[0.0]
	ui=[0.0]
	npower=1
	n_exp=0
	tau=Tc/T
	delta=rho/rho_c
	n_power=1
        #phi_o=ideal_helmholtz_energy_from_Cp_o_over_R(ni,ti,vi,ui,R,ho,so,rho_c,Tc,tau,delta,n_power,n_exp,To,rho_o)

        #N=mBWR_Coef
        #abwr=ABWR(N,T,rho,rho_c)
	#residual=abwr/(R*T)
	[N_i,d_i,t_i,p_i]=mBWR_to_Helmholtz(mBWR_Coef,T,rho,rho_c,Tc,R)
	
	
	#print shape(sorted_array)
	#print d_i
	#print t_i
	#N_i=sorted_array[3,:]
	#d_i=sorted_array[2,:]
	#t_i=sorted_array[1,:]
	#p_i=sorted_array[0,:]
	#print 'heres p_i',p_i,p_ii
	Beta_i=0
	gamma_i=0
	D_i=0
	n_power_terms=len(N_i)
	n_gaussian_terms=0
	n_critical_terms=0
	RES_a=0
	RES_b=0
	RES_B=0
	RES_C=0
	RES_D=0
	RES_A=0
	phi_i=0
        #residual2=helmholtz_energy_residual(tau,delta,ni,ti,di,pi,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	#helmholtz=residual2#-residual#residual2#(ideal+residual)/M_He#(ideal+residual)/M_He
        #print residual,residual2

	#Calculate Ideal Terms
	ideal=ideal_helmholtz_energy_from_Cp_o_over_R(ni,ti,vi,ui,R,ho,so,rho_c,Tc,tau,delta,n_power,n_exp,To,rho_o)
        
        dalpha_o=ideal_helmholtz_energy_dtau_from_Cp_o_over_R(ni,ti,vi,ui,R,ho,so,rho_c,Tc,tau,delta,n_power,n_exp,To,rho_o)
	
	dalpha_o_tau_tau=ideal_helmholtz_energy_dtau_dtau_from_Cp_o_over_R(ni,ti,vi,ui,R,ho,so,rho_c,Tc,tau,delta,n_power,n_exp,To,rho_o)
	
	#Calculate Residual Terms
	residual=helmholtz_energy_residual(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	
	dalpha_tau=d_alpha_d_tau(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	
	dalpha_delta=d_alpha_d_delta(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	
	dalpha_tau_tau=d_alpha_d_tau_d_tau(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
        
        dalpha_delta_delta=d_alpha_d_delta_d_delta(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
        
        dalpha_delta_tau=d_alpha_d_delta_d_tau(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)

	#compressibility Density<-->Pressure
	Z=delta*dalpha_delta+float(1.0)
        #Enthalpy
	h1=R_He*T*1.0
	h2=R_He*T*tau*(dalpha_o+dalpha_tau)
	h3=R_He*T*delta*dalpha_delta
	h=h1+h2+h3
	#Entropy
	s=R_He*(tau*dalpha_o+tau*dalpha_tau-ideal-residual)
	#Absolute Helmholtz Energy
	absolute_helmholtz_energy=R_He*T*(ideal+residual)
	#Isochoric heat capacity
	cv=-1.0*R_He*(tau*tau*(dalpha_o_tau_tau+dalpha_tau_tau))
	#Isobaric heat capacity
	cp=cv+R_He*pow((1.0+delta*dalpha_delta-delta*tau*dalpha_delta_tau),2)/(1.0+2.0*delta*dalpha_delta+delta*delta*dalpha_delta_delta)
	
	# Speed of Sound?
	
	a1 = 1 + delta*dalpha_delta - delta*tau*dalpha_delta_tau;
        b1 = tau*tau*(dalpha_o_tau_tau + dalpha_tau_tau);
        w = 1 + 2*delta*dalpha_delta + delta*delta*dalpha_delta_delta - a1*a1/b1;
        speed_o_sound=power(R_He*T*w*1000,0.5)


        return Z,h,s,absolute_helmholtz_energy,cv,cp,speed_o_sound,ideal,residual
Exemple #6
0
def enthalpy_h2o(T,density):
	from helmholtz_functions.ideal_helmholtz_from_coef import ideal_helmholtz_from_coef
	from helmholtz_functions.ideal_helmholtz_from_coef_dtau import ideal_helmholtz_from_coef_dtau
	from helmholtz_functions.ideal_helmholtz_from_coef_dtau_dtau import ideal_helmholtz_from_coef_dtau_dtau
	from helmholtz_functions.d_alpha_d_tau import d_alpha_d_tau 
	from helmholtz_functions.d_alpha_d_delta import d_alpha_d_delta
        from helmholtz_functions.helmholtz_energy_residual import helmholtz_energy_residual
        from helmholtz_functions.d_alpha_d_tau_d_tau import d_alpha_d_tau_d_tau
        from helmholtz_functions.d_alpha_d_delta_d_delta import d_alpha_d_delta_d_delta
        from helmholtz_functions.d_alpha_d_delta_d_tau import d_alpha_d_delta_d_tau
        
        from helmholtz_functions.d_alpha_d_tau_vector import d_alpha_d_tau_vector 
	from helmholtz_functions.d_alpha_d_delta_vector import d_alpha_d_delta_vector
        from helmholtz_functions.ideal_helmholtz_from_coef_dtau_vector import ideal_helmholtz_from_coef_dtau_vector
        from thermodynamic_functions.enthalpy_vector import enthalpy_vector
        from helmholtz_functions.d_alpha_d_delta_d_delta_vector import d_alpha_d_delta_d_delta_vector
        from helmholtz_functions.d_alpha_d_delta_vector import d_alpha_d_delta_vector
        from helmholtz_functions.d_alpha_d_tau_d_tau_vector import d_alpha_d_tau_d_tau_vector
        from helmholtz_functions.d_alpha_d_delta_d_tau_vector import d_alpha_d_delta_d_tau_vector
        from helmholtz_functions.ideal_helmholtz_from_coef_vector import ideal_helmholtz_from_coef_vector
        from helmholtz_functions.ideal_helmholtz_from_coef_dtau_dtau_vector import ideal_helmholtz_from_coef_dtau_dtau_vector
        from helmholtz_functions.helmholtz_energy_residual_vector import helmholtz_energy_residual_vector
        from pylab import zeros
        from math import sqrt
        from numpy import asarray
	N_i=[0.12533547935523E-1,0.78957634722828E1, -0.87803203303561E1,
		0.31802509345418, 
		-0.26145533859358, 
		-0.78199751687981E-2,
		0.88089493102134E-2, 
		-0.66856572307965,
		0.20433810950965,
		-0.66212605039687E-4,
		-0.19232721156002,
		-0.25709043003438,
		0.16074868486251,
		-0.40092828925807E-1,
		0.39343422603254E-6, 
		-0.75941377088144E-5,
		0.56250979351888E-3, 
		-0.15608652257135E-4,
		0.11537996422951E-8, 
		0.36582165144204E-6, 
		-0.13251180074668E-11,
		-0.62639586912454E-9, 
		-0.10793600908932, 
		0.17611491008752E-1, 
		0.22132295167546, 
		-0.40247669763528,
		0.58083399985759, 
		0.49969146990806E-2, 
		-0.31358700712549E-1,
		-0.74315929710341,
		0.47807329915480, 
		0.20527940895948E-1,
		-0.13636435110343, 
		0.14180634400617E-1, 
		0.83326504880713E-2, 
		-0.29052336009585E-1,
		0.38615085574206E-1, 
		-0.20393486513704E-1,
		-0.16554050063734E-2,
		0.19955571979541E-2, 
		0.15870308324157E-3, 
		-0.16388568342530E-4, 
		0.43613615723811E-1, 
		0.34994005463765E-1, 
		-0.76788197844621E-1,
		0.22446277332006E-1, 
		-0.62689710414685E-4,
		-0.55711118565645E-9,
		-0.19905718354408, 
		0.31777497330738,
		-0.11841182425981,
		-0.31306260323435e2,
		0.31546140237781e2,
		-0.25213154341695e4,
		-0.14874640856724,
		0.31806110878444]
	t_i=[-0.5, 0.875,  1.0,  0.5,  0.75, 0.375,  1.0,  4.0,  6.0, 12.0,  1.0,
           5.0, 4.0  ,  2.0, 13.0,  9.0 , 3.0  ,  4.0, 11.0,  4.0, 13.0,  1.0,
           7.0, 1.0  ,  9.0, 10.0, 10.0 , 3.0  ,  7.0, 10.0, 10.0,  6.0, 10.0,
          10.0, 1.0  ,  2.0,  3.0,  4.0 , 8.0  ,  6.0,  9.0,  8.0, 16.0, 22.0,
          23.0,23.0  , 10.0, 50.0, 44.0, 46.0  , 50.0,  0.0,  1.0,  4.0]
	d_i=[1.0, 1.0, 1.0, 2.0,  2.0,  3.0,  4.0,  1.0,  1.0, 1.0, 2.0,  2.0,  3.0,  4.0,
          4.0, 5.0, 7.0, 9.0, 10.0, 11.0, 13.0, 15.0,  1.0, 2.0, 2.0,  2.0,  3.0,  4.0,
          4.0, 4.0, 5.0, 6.0,  6.0,  7.0,  9.0,  9.0,  9.0, 9.0, 9.0, 10.0, 10.0, 12.0,
          3.0, 4.0, 4.0, 5.0, 14.0,  3.0,  6.0,  6.0,  6.0, 3.0, 3.0,  3.0]
	p_i=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
          1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0,
          2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
          2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 6.0, 6.0, 6.0, 6.0]
        phi_i=zeros(51+3)
	phi_i[51]=20.0 # Note, we need to use -sign here
	phi_i[52]=20.0 # Note, we need to use -sign here
	phi_i[53]=20.0 # Note, we need to use -sign here
	Beta_i=zeros(51+5)
	Beta_i[51]=150.0 #Note, we need to use - sign here
	Beta_i[52]=150.0 #Note, we need to use - sign here
	Beta_i[53]=250.0 #Note, we need to use - sign here
	Beta_i[54]=0.3  #Note, we need to use - sign here
	Beta_i[55]=0.3 #Note, we need to use - sign here
	gamma_i=zeros(len(p_i)+3)
	gamma_i[51]=1.21
	gamma_i[52]=1.21
	gamma_i[53]=1.25 
	D_i=zeros(51+3)
	D_i[51]=1.0
	D_i[52]=1.0
	D_i[53]=1.0 
	
        R=8.314472
	Tc  = 647.096     #K
        rho_c      =322.0#18.015268*17.8737279956 #322.000214485       #kg m^-3 #mol/liter 17.8737279956
        R_h2o = 0.46151805#R/18.015268#  #kJ kg^-1 K^-1
	
	delta=density/rho_c
	tau=Tc/T
	
	ideal_n = [-8.32044648201,6.6832105268,3.00632,0.012436,0.97315,1.27950,0.96956,0.24873]
        ideal_gamma = [0.0,0.0,0.0,1.28728967,3.53734222,7.74073708,9.24437796,27.5075105]
        
	
	n_power_terms=51#len(p_i)
	n_gaussian_terms=3
	n_critical_terms=2
	#print delta,tau
	#critcal terms
	RES_a=zeros(len(p_i)+5)
	RES_b=zeros(len(p_i)+5)
	RES_B=zeros(len(p_i)+5)
	RES_C=zeros(len(p_i)+5)
	RES_D=zeros(len(p_i)+5)
	RES_A=zeros(len(p_i)+5)        
        RES_a[54]=3.5
        RES_a[55]=3.5
        RES_b[54]=0.85
        RES_b[55]=0.95
        RES_B[54]=0.2
        RES_B[55]=0.2
        RES_C[54]=28.0
        RES_C[55]=32.0
        RES_D[54]=700.0
        RES_D[55]=800.0
        RES_A[54]=0.32
        RES_A[55]=0.32
        h2o_component_params={'N_i':asarray([0.12533547935523E-1,0.78957634722828E1, -0.87803203303561E1,0.31802509345418, -0.26145533859358, -0.78199751687981E-2,0.88089493102134E-2, -0.66856572307965,0.20433810950965,-0.66212605039687E-4,-0.19232721156002,-0.25709043003438,0.16074868486251,-0.40092828925807E-1,0.39343422603254E-6, -0.75941377088144E-5,0.56250979351888E-3, -0.15608652257135E-4,0.11537996422951E-8, 0.36582165144204E-6, -0.13251180074668E-11,-0.62639586912454E-9, -0.10793600908932, 0.17611491008752E-1, 0.22132295167546, -0.40247669763528,0.58083399985759, 0.49969146990806E-2, -0.31358700712549E-1,-0.74315929710341,0.47807329915480, 0.20527940895948E-1,-0.13636435110343, 0.14180634400617E-1, 0.83326504880713E-2, -0.29052336009585E-1,0.38615085574206E-1, -0.20393486513704E-1,-0.16554050063734E-2,0.19955571979541E-2, 0.15870308324157E-3, -0.16388568342530E-4, 0.43613615723811E-1, 0.34994005463765E-1, -0.76788197844621E-1,0.22446277332006E-1, -0.62689710414685E-4,-0.55711118565645E-9,-0.19905718354408, 0.31777497330738,-0.11841182425981,-0.31306260323435e2,0.31546140237781e2,-0.25213154341695e4,-0.14874640856724,0.31806110878444]),
                    't_i':asarray([-0.5, 0.875,  1.0,  0.5,  0.75, 0.375,  1.0,  4.0,  6.0, 12.0,  1.0,
                                  5.0, 4.0  ,  2.0, 13.0,  9.0 , 3.0  ,  4.0, 11.0,  4.0, 13.0,  1.0,
                                  7.0, 1.0  ,  9.0, 10.0, 10.0 , 3.0  ,  7.0, 10.0, 10.0,  6.0, 10.0,
                                  10.0, 1.0  ,  2.0,  3.0,  4.0 , 8.0  ,  6.0,  9.0,  8.0, 16.0, 22.0,
                                  23.0,23.0  , 10.0, 50.0, 44.0, 46.0  , 50.0,  0.0,  1.0,  4.0]),
                     'd_i':asarray([1.0, 1.0, 1.0, 2.0,  2.0,  3.0,  4.0,  1.0,  1.0, 1.0, 2.0,  2.0,  3.0,  4.0,
                                  4.0, 5.0, 7.0, 9.0, 10.0, 11.0, 13.0, 15.0,  1.0, 2.0, 2.0,  2.0,  3.0,  4.0,
                                  4.0, 4.0, 5.0, 6.0,  6.0,  7.0,  9.0,  9.0,  9.0, 9.0, 9.0, 10.0, 10.0, 12.0,
                                  3.0, 4.0, 4.0, 5.0, 14.0,  3.0,  6.0,  6.0,  6.0, 3.0, 3.0,  3.0]),
                     'p_i':asarray([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
                                  1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0,
                                  2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
                                  2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 6.0, 6.0, 6.0, 6.0]),
                     'phi_i':phi_i,
                     'Beta_i':Beta_i,
                     'gamma_i':gamma_i,
                     'D_i':D_i,
                     'R':float(8.314472),
                     'Tc':float(647.096),     #K
                     'rho_c':float(322.0),#18.015268*17.8737279956 #322.000214485       #kg m^-3 #mol/liter 17.8737279956
                     'M_amu':float(8.314472/0.46151805),
	             'ideal_n': asarray([-8.32044648201,6.6832105268,3.00632,0.012436,0.97315,1.27950,0.96956,0.24873]),
                     'ideal_gamma':asarray([0.0,0.0,0.0,1.28728967,3.53734222,7.74073708,9.24437796,27.5075105]),
                     'n_power_terms':int(51),#len(p_i)
                     'n_power_terms_wo_exp':int(7),
                     'n_power_terms_w_exp':int(51-7),
                     'n_gaussian_terms':int(3),
                     'n_critical_terms':int(2),
                     'RES_a':RES_a,
                     'RES_b':RES_b,
                     'RES_B':RES_B,
                     'RES_C':RES_C,
                     'RES_D':RES_D,
                     'RES_A':RES_A,
                     'ni':int(0),
                     'ti':int(0),
                     'vi':int(0),
                     'ui':int(0),
                     'ho':int(0),
                     'so':int(0),
                     'n_ideal_gas_terms_pow':int(0),
                     'n_ideal_gas_terms_exp':int(0),
                     'To':int(0),
                     'Po':int(0),
                     'rho_o':int(0),
                     'ideal_eqn_type':'Coef'}
	#Calculate Ideal Terms
	delta_v=asarray([delta,delta,delta])
        tau_v=asarray([tau,tau,tau])
        
	ideal=ideal_helmholtz_from_coef(delta,tau,ideal_n,ideal_gamma)
        ideal_v=ideal_helmholtz_from_coef_vector(delta_v,tau_v,h2o_component_params['ideal_n'],h2o_component_params['ideal_gamma'])
        #print ideal-ideal_v
        
        dalpha_o=ideal_helmholtz_from_coef_dtau(delta,tau,ideal_n,ideal_gamma)
	
	
	dalpha_o_vector=ideal_helmholtz_from_coef_dtau_vector(delta_v,tau_v,h2o_component_params['ideal_n'],h2o_component_params['ideal_gamma'])
	#print dalpha_o-dalpha_o_vector
	dalpha_o_tau_tau=ideal_helmholtz_from_coef_dtau_dtau(delta,tau,ideal_n,ideal_gamma)
	dalpha_o_tau_tau_v=ideal_helmholtz_from_coef_dtau_dtau_vector(delta_v,tau_v,h2o_component_params['ideal_n'],h2o_component_params['ideal_gamma'])
	#print dalpha_o_tau_tau-dalpha_o_tau_tau_v
	
	#Calculate Residual Terms
	residual=helmholtz_energy_residual(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	residual_v=helmholtz_energy_residual_vector(tau_v,delta_v,h2o_component_params)
	print residual-residual_v
	dalpha_tau=d_alpha_d_tau(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	
	dalpha_tau_vector=d_alpha_d_tau_vector(tau_v,delta_v,h2o_component_params)
	#print dalpha_tau-dalpha_tau_vector
	dalpha_delta=d_alpha_d_delta(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	dalpha_delta_vector=d_alpha_d_delta_vector(tau_v,delta_v,h2o_component_params)
	#print dalpha_delta_vector-dalpha_delta
	
	dalpha_tau_tau=d_alpha_d_tau_d_tau(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
        dalpha_tau_tau_vector=d_alpha_d_tau_d_tau_vector(tau_v,delta_v,h2o_component_params)
        #print dalpha_tau_tau-dalpha_tau_tau_vector
        dalpha_delta_delta=d_alpha_d_delta_d_delta(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
        dalpha_delta_delta_vector=d_alpha_d_delta_d_delta_vector(tau_v,delta_v,h2o_component_params)
        #print T, dalpha_delta_delta-dalpha_delta_delta_vector
      #  print dalpha_delta_delta
        dalpha_delta_tau=d_alpha_d_delta_d_tau(tau,delta,N_i,t_i,d_i,p_i,phi_i,Beta_i,gamma_i,D_i,n_power_terms,n_gaussian_terms,n_critical_terms,RES_a,RES_b,RES_B,RES_C,RES_D,RES_A)
	dalpha_delta_tau_vector=d_alpha_d_delta_d_tau_vector(tau_v,delta_v,h2o_component_params)
	#print dalpha_delta_tau_vector-dalpha_delta_tau
        #compressibility Density<-->Pressure
	Z=delta*dalpha_delta+float(1.0)
        #Enthalpy
	h1=R_h2o*T*1.0
	h2=R_h2o*T*tau*(dalpha_o+dalpha_tau)
	h3=R_h2o*T*delta*dalpha_delta
	h=h1+h2+h3
	h_v=enthalpy_vector(tau_v,delta_v,Tc,rho_c,'pure_substance',h2o_component_params,h2o_component_params,h2o_component_params,0,0)
	#print dalpha_o,dalpha_o_vector
	#print h,R_h2o*T*h_v
	#Entropy
	
	s=R_h2o*(tau*dalpha_o+tau*dalpha_tau-ideal-residual)
	#Absolute Helmholtz Energy
	absolute_helmholtz_energy=R_h2o*T*(ideal+residual)
	#Isochoric heat capacity
	cv=-1.0*R_h2o*(tau*tau*(dalpha_o_tau_tau+dalpha_tau_tau))
	#Isobaric heat capacity
	cp=cv+R_h2o*pow((1.0+delta*dalpha_delta-delta*tau*dalpha_delta_tau),2)/(1.0+2.0*delta*dalpha_delta+delta*delta*dalpha_delta_delta)
	
	#print dalpha_delta,dalpha_delta_delta,dalpha_delta_tau,dalpha_tau_tau
	# Speed of Sound?
	#print dalpha_delta_delta,dalpha_delta_tau
	#speed_o_sound_p1 = 1.0 + 2.0*delta*dalpha_delta + delta*delta*dalpha_delta_delta
        #speed_o_sound_p2 = pow((1.0 + delta*dalpha_delta - delta*tau*dalpha_delta_tau),2)
        #speed_o_sound_p3 = tau*tau*(dalpha_o_tau_tau + dalpha_tau_tau)
        #speed_o_sound= sqrt((R_h2o*T)*(speed_o_sound_p1 - speed_o_sound_p2/speed_o_sound_p3)*1000.0)
        #what it's probably not 
        #d_tau_tau
        #d_delta
        #d_o_tau_tau
        a1 = 1 + delta*dalpha_delta - delta*tau*dalpha_delta_tau;
        b1 = tau*tau*(dalpha_o_tau_tau + dalpha_tau_tau);
        w = 1 + 2*delta*dalpha_delta + delta*delta*dalpha_delta_delta - a1*a1/b1;
        speed_o_sound=sqrt(R_h2o*T*w*1000)
        return Z,h,s,absolute_helmholtz_energy,cv,cp,speed_o_sound