Exemplo n.º 1
0
def PressureCAPI(T_i,P_h2_i,P_he_i,P_ch4_i,P_h2o_i):

	from gas_library import get_h2_params	
	from gas_library import get_ch4_params
	from gas_library import get_he_params
	from gas_library import get_h2o_params
	from gas_library import get_h2_ch4_mix
	from gas_library import get_h2_h2o_mix
	from thermodynamic_functions.C_p_vector_mix import C_p_vector_mix
	from scale_tau_and_delta_kw_4comp import scale_tau_and_delta_kw_4comp
	from thermodynamic_functions.pressure_vector4 import pressure_vector4
	from thermodynamic_functions.C_p_vector_mix4 import C_p_vector_mix4

	from scipy.optimize import fsolve
	from numpy import asarray,zeros
        
	#f=open('python_compressibility/calc_Cp/output_T_P.txt','r')
	#data=f.readline()
	#f.close()
        #data=input_string_from_C
	#T_i,P_h2_i,P_he_i,P_ch4_i,P_h2o_i=data.split("\t")

	parameters_H2=get_h2_params()
	parameters_h2o=get_h2o_params()
	parameters_ch4=get_ch4_params()
	parameters_he=get_he_params()


	Bars_to_kPa=100
	T=asarray([float(T_i),float(T_i)])
	P_h2=asarray([float(P_h2_i),float(P_h2_i)])*Bars_to_kPa
	P_he=asarray([float(P_he_i),float(P_he_i)])*Bars_to_kPa
	P_ch4=asarray([float(P_ch4_i),float(P_ch4_i)])*Bars_to_kPa
	P_h2o=asarray([float(P_h2o_i),float(P_h2o_i)])*Bars_to_kPa

                                             

	#here we are using the ideal gas law as a proxy for density. The final pressure will be defined by the equation of state.
	#In other words this is a kludge to keep density fixed, then calculate the real pressure.	                         

	density_h2=P_h2/((parameters_H2['R']/parameters_H2['M_amu'])*T)
	#density_h2=fsolve(residual_pressure_pure_substance,density_guess_h2,args=(P_h2,T,parameters_H2))
	delta_h2=density_h2/parameters_H2['rho_c']

	density_h2o=P_h2o/((parameters_h2o['R']/parameters_h2o['M_amu'])*T)
	#density_h2o=fsolve(residual_pressure_pure_substance,density_guess_h2o,args=(P_h2o,T,parameters_h2o))
	delta_h2o=density_h2o/parameters_h2o['rho_c']

	density_he=P_he/((parameters_he['R']/parameters_he['M_amu'])*T)
	#density_he=fsolve(residual_pressure_pure_substance,density_guess_he,args=(P_he,T,parameters_he))
	delta_he=density_he/parameters_he['rho_c']

	density_ch4=P_ch4/((parameters_ch4['R']/parameters_ch4['M_amu'])*T)
	#density_ch4=fsolve(residual_pressure_pure_substance,density_guess_ch4,args=(P_ch4,T,parameters_ch4))
	delta_ch4=density_ch4/parameters_ch4['rho_c']


	density=density_h2+density_h2o+density_ch4+density_he
	#note we're calculating x_h2 and x_ch4 according to the mixture of just H2+CH4, not the whole thing He+h2o+etc...
	molar_density_h2=density_h2/parameters_H2['M_amu']
	molar_density_he=density_he/parameters_he['M_amu']
	molar_density_ch4=density_ch4/parameters_ch4['M_amu']
	molar_density_h2o=density_h2o/parameters_h2o['M_amu']

	x_h2=molar_density_h2/(molar_density_h2+molar_density_ch4+molar_density_he+molar_density_h2o)
	x_ch4=molar_density_ch4/(molar_density_h2+molar_density_ch4+molar_density_he+molar_density_h2o)
	x_he=molar_density_he/(molar_density_h2+molar_density_ch4+molar_density_he+molar_density_h2o)
	x_h2o=molar_density_h2o/(molar_density_h2+molar_density_ch4+molar_density_he+molar_density_h2o)

	h2_ch4_mix_params=get_h2_ch4_mix(x_h2,x_ch4)
	h2_h2o_mix_params=get_h2_h2o_mix(x_h2,x_h2o)

	M_amu_mix=x_h2*parameters_H2['M_amu']+x_he*parameters_he['M_amu']+x_ch4*parameters_ch4['M_amu']+x_h2o*parameters_h2o['M_amu']
	[tau,delta,Tc_mix,rho_c_mix]=scale_tau_and_delta_kw_4comp(T,density/M_amu_mix,x_h2,x_ch4,x_h2o,x_he,parameters_H2['Tc'],parameters_ch4['Tc'],parameters_h2o['Tc'],parameters_he['Tc'],parameters_H2['rho_c']/parameters_H2['M_amu'],parameters_ch4['rho_c']/parameters_ch4['M_amu'],parameters_h2o['rho_c']/parameters_h2o['M_amu'],parameters_he['rho_c']/parameters_he['M_amu'],h2_ch4_mix_params['BetaT'],h2_ch4_mix_params['BetaV'],h2_ch4_mix_params['GammaT'],h2_ch4_mix_params['GammaV'],h2_h2o_mix_params['BetaT'],h2_h2o_mix_params['BetaV'],h2_h2o_mix_params['GammaT'],h2_h2o_mix_params['GammaV'],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,1.0)
        
	Pcalc=pressure_vector4(density,T,tau,delta,parameters_H2,parameters_ch4,parameters_h2o,parameters_he,h2_ch4_mix_params,h2_h2o_mix_params,x_h2,x_ch4,x_h2o,x_he,rho_c_mix,Tc_mix)

	CP_mix=C_p_vector_mix4(density,T,delta,tau,parameters_H2,parameters_ch4,parameters_he,parameters_h2o,h2_ch4_mix_params,h2_h2o_mix_params,x_h2,x_ch4,x_he,x_h2o)
	Pcalc=Pcalc/Bars_to_kPa
        #print Pcalc[0],CP_mix[0]#,T_i,P_h2_i,P_he_i,P_ch4_i,P_h2o_i
        return (float(Pcalc[0]),float(CP_mix[0]))
Exemplo n.º 2
0

density=density_h2+density_h2o+density_ch4+density_he
#note we're calculating x_h2 and x_ch4 according to the mixture of just H2+CH4, not the whole thing He+h2o+etc...
molar_density_h2=density_h2/parameters_H2['M_amu']
molar_density_he=density_he/parameters_he['M_amu']
molar_density_ch4=density_ch4/parameters_ch4['M_amu']
molar_density_h2o=density_h2o/parameters_h2o['M_amu']

x_h2=molar_density_h2/(molar_density_h2+molar_density_ch4+molar_density_he+molar_density_h2o)
x_ch4=molar_density_ch4/(molar_density_h2+molar_density_ch4+molar_density_he+molar_density_h2o)
x_he=molar_density_he/(molar_density_h2+molar_density_ch4+molar_density_he+molar_density_h2o)
x_h2o=molar_density_h2o/(molar_density_h2+molar_density_ch4+molar_density_he+molar_density_h2o)

h2_ch4_mix_params=get_h2_ch4_mix(x_h2,x_ch4)
h2_h2o_mix_params=get_h2_h2o_mix(x_h2,x_h2o)

M_amu_mix=x_h2*parameters_H2['M_amu']+x_he*parameters_he['M_amu']+x_ch4*parameters_ch4['M_amu']+x_h2o*parameters_h2o['M_amu']
[tau,delta,Tc_mix,rho_c_mix]=scale_tau_and_delta_kw_4comp(T,density/M_amu_mix,x_h2,x_ch4,x_h2o,x_he,parameters_H2['Tc'],parameters_ch4['Tc'],parameters_h2o['Tc'],parameters_he['Tc'],parameters_H2['rho_c']/parameters_H2['M_amu'],parameters_ch4['rho_c']/parameters_ch4['M_amu'],parameters_h2o['rho_c']/parameters_h2o['M_amu'],parameters_he['rho_c']/parameters_he['M_amu'],h2_ch4_mix_params['BetaT'],h2_ch4_mix_params['BetaV'],h2_ch4_mix_params['GammaT'],h2_ch4_mix_params['GammaV'],h2_h2o_mix_params['BetaT'],h2_h2o_mix_params['BetaV'],h2_h2o_mix_params['GammaT'],h2_h2o_mix_params['GammaV'],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,1.0)
        
Pcalc=pressure_vector4(density,T,tau,delta,parameters_H2,parameters_ch4,parameters_h2o,parameters_he,h2_ch4_mix_params,h2_h2o_mix_params,x_h2,x_ch4,x_h2o,x_he,rho_c_mix,Tc_mix)

CP_mix=C_p_vector_mix4(density,T,delta,tau,parameters_H2,parameters_ch4,parameters_he,parameters_h2o,h2_ch4_mix_params,h2_h2o_mix_params,x_h2,x_ch4,x_he,x_h2o)
Pcalc=Pcalc/Bars_to_kPa
try:
   f=open('python_compressibility/calc_Cp/input_Cp.txt','w')
   f.write(str(CP_mix[0])+' '+str(Pcalc[0]))
   f.close()
   print 'success',str(Pcalc[0])
except:
   f=open('python_compressibility/calc_Cp/fail.txt','w')
Exemplo n.º 3
0
from gas_library import get_h2_params
from gas_library import get_ch4_params
from gas_library import get_he_params
from gas_library import get_h2o_params
from gas_library import get_h2_ch4_mix
from gas_library import get_h2_h2o_mix
from scale_tau_and_delta_kw_4comp import scale_tau_and_delta_kw_4comp
from thermodynamic_functions.pressure_vector4 import pressure_vector4
from numpy import asarray,zeros

h2_params=get_h2_params()
ch4_params=get_ch4_params()
he_params=get_he_params()
h2o_params=get_h2o_params()
h2_ch4_mix_params=get_h2_ch4_mix(0.5,0.5)
h2_h2o_mix_params=get_h2_h2o_mix(0.5,0.5)
density=asarray([0.1,0.1])
x_h2=asarray([0.99,0.99])
x_ch4=asarray([0.01,0.01])
x_h2o=asarray([0.00,0.00])
x_he=asarray([0.0,0.0])
T=asarray([500.0,500.0])


M_amu_mix=x_h2*h2_params['M_amu']+x_ch4*ch4_params['M_amu']+x_h2o*h2o_params['M_amu']+x_he*he_params['M_amu']
[tau,delta,Tc_mix,rho_c_mix]=scale_tau_and_delta_kw_4comp(T,density/M_amu_mix,x_h2,x_ch4,x_h2o,x_he,h2_params['Tc'],ch4_params['Tc'],h2o_params['Tc'],he_params['Tc'],h2_params['rho_c']/h2_params['M_amu'],ch4_params['rho_c']/ch4_params['M_amu'],h2o_params['rho_c']/h2o_params['M_amu'],he_params['rho_c']/he_params['M_amu'],h2_ch4_mix_params['BetaT'],h2_ch4_mix_params['BetaV'],h2_ch4_mix_params['GammaT'],h2_ch4_mix_params['GammaV'],h2_h2o_mix_params['BetaT'],h2_h2o_mix_params['BetaV'],h2_h2o_mix_params['GammaT'],h2_h2o_mix_params['GammaV'],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,1.0)
print 'tau,delta',tau,delta
P=pressure_vector4(density,T,tau,delta,h2_params,ch4_params,h2o_params,he_params,h2_ch4_mix_params,h2_h2o_mix_params,x_h2,x_ch4,x_h2o,x_he,rho_c_mix,Tc_mix)
print P