Note
Click here to download the full example code
3. Vapor + Liquid + Halite coexistence surface
Calculate VLH surface and properties, and compare result with [Driesner, 2007].
Python code
import os
import numpy as np
import time
import linecache
import matplotlib.pyplot as plt
import matplotlib as mpl
from matplotlib import patches
import matplotlib.ticker as ticker
from matplotlib.patches import Patch
from matplotlib.ticker import MultipleLocator
from tabulate import tabulate
import copy
import warnings
warnings.filterwarnings("ignore", category=RuntimeWarning)
# 3d plot
import helpfunc
mpl.rcParams['font.family'] = 'Arial' # default font family
mpl.rcParams['mathtext.fontset'] = 'cm' # font for math
fmt_figs = [] # ['svg','pdf']
figpath = '.'
result_path='../../../gallery_H2ONaCl/pT'
def savefig(figname):
for fmt_fig in fmt_figs:
figname_full = '%s/%s.%s' % (figpath, figname, fmt_fig)
plt.savefig(figname_full, bbox_inches='tight')
print('figure saved: ', figname_full)
compare = lambda a,b : float(str('%.6e'%(a)))-float(str('%.6e'%(b)))
# Import package of xThermo
from xThermo import H2O
from xThermo import NaCl
from xThermo import H2ONaCl
sw_84 = H2ONaCl.cH2ONaCl("IAPS84")
sw_95 = H2ONaCl.cH2ONaCl("IAPWS95")
def plot_3d(sw,scale='linear'):
fig=plt.figure(figsize=(14,14))
ax = fig.add_subplot(111,projection='3d',facecolor='None')
xcenter=1 # X<1% wt.% use log scale, if X>=1% wt.% NaCl, use linear scale
axtrans=[]
if(scale=='loglinear'):
axtrans=helpfunc.set_axis_diagram_3D_loglinearx(ax,xcenter=xcenter,ratio_log_lin=(1,1),zlim=(sw.pmin()/1E5,600),xMajor_loc_log=1,xMajor_loc_linear=10,xMinor_loc_linear=2,zMajor_loc=100,zMinor_loc=20,yMajor_loc=200,xlim=(1E-10,100),xlabel='log$_{\mathregular{10}}$(Wt.% NaCl)')
else:
helpfunc.set_axis_diagram_3D(ax,zlim=(sw.pmin()/1E5,600),zMajor_loc=100,zMinor_loc=20)
transform_X = lambda X : helpfunc.data2axis_loglin(axtrans,X) if(scale=='loglinear') else X
# calculate boundary surface of VLH
T = np.append(np.linspace(H2ONaCl.T_MIN_VLH, sw.Tmax_VLH()-10, 100), np.linspace(sw.Tmax_VLH()-10, sw.Tmax_VLH(), 50))
P_vlh = np.array(sw.P_VLH(T))
Xl_vlh, Xv_vlh = np.array(sw.X_VLH(T,P_vlh))
# plot
n_log,n_linear=20,40
X = np.linspace(H2ONaCl.X_MIN, H2ONaCl.X_MAX, n_log+n_linear)
TT,XX = np.meshgrid(T, X)
PP = np.zeros_like(TT)
for i in range(0,PP.shape[0]):
PP[i,:]=P_vlh
# 1. vapor -> liquid region
for j in range(0,PP.shape[1]):
XX[:,j] = np.append(10**np.linspace(np.log10(Xv_vlh[j]),np.log10(xcenter/100),n_log), np.linspace(xcenter/100,Xl_vlh[j],n_linear))
ax.plot_wireframe(transform_X(XX*100),TT-273.15,PP/1E5, color='darkblue',lw=1,label='V+L+H: vapor->liquid')
# ax.plot_surface(transform_X(XX*100),TT-273.15,PP/1E5,ec='gray',linewidth=0.1)
# 2. liquid -> halite region
for j in range(0,PP.shape[1]):
XX[:,j] = np.linspace(Xl_vlh[j], 1,len(X))
ax.plot_wireframe(transform_X(XX*100),TT-273.15,PP/1E5, color='orange',lw=1,label='V+L+H: liquid->halite')
# ax.plot_surface(transform_X((XX*100)),TT-273.15,PP/1E5,ec='gray',linewidth=0.1)
# ax.plot(X_haliteLiquidus*100, T-273.15, P/1E5,color='orange',label='V+L+H: liquid',lw=1,zorder=10)
# VLH: halite
ax.plot(transform_X(Xl_vlh*0+100), T-273.15, P_vlh/1E5, color='k',label='VLH: halite',lw=2)
# VLH: liquid
ax.plot(transform_X(Xl_vlh*100), T-273.15, P_vlh/1E5, color='g',label='VLH: liquid',lw=2)
# VLH: vapor
ax.plot(transform_X(Xv_vlh*100), T-273.15, P_vlh/1E5, color='r',label='VLH: vapor',lw=2,zorder=11)
# project halite saturated vapor on X-T plane
ax.plot(transform_X(Xv_vlh*100), T-273.15, T*0+sw.pmin()/1E5, color='r',label='Fig.11 of Driesner & Heinrich(2007)',ls=(0,(2,1)),lw=2)
leg=ax.legend()
# change legend handle of wireframe of phase boundaries to wireframe hatch
for i in [0,1]:
leg.legendHandles[i]=Patch(facecolor='white', edgecolor=leg.legendHandles[i]._color,linewidth=0.0,label=leg.texts[i]._text,hatch='++++')
ax.legend(handles=leg.legendHandles, loc='upper left',ncol=7)
# text
helpfunc.text3d(ax,(transform_X(1E-8),800,sw.pmin()/1E5),"P$_{min}$=%.0f bar"%(sw.pmin()/1E5),size=0.07,angle=-90,ec='None',fc='k')
savefig('PhaseBoundary_VLH_3D_%s'%(scale))
Benchmark comparison
Compare result of xThermo and [Driesner, 2007], and also compare result based on different EOS of water.
Python code
def contourf_phase(ax,TT,pp,phase,phase_name,ax_cb=None):
cmap = plt.get_cmap("Dark2")
# customize cmap
colors=list(copy.deepcopy(cmap.colors))
colors[0:8]=['lightblue','red','lightgreen','lightgray','violet','yellow','lightcyan','lightcyan']
cmap.colors=tuple(colors)
CS=ax.contourf(TT,pp,phase, cmap=cmap,vmin=phase.min()-0.5, vmax=phase.max()+0.5, levels=np.linspace(phase.min()-0.5,phase.max()+0.5,len(phase_name)+1))
if(ax_cb is None): ax_cb = ax.inset_axes([0,1.03,1,0.05])
cb=plt.colorbar(CS, cax=ax_cb, orientation='horizontal',ticklocation='top',ticks=np.arange(phase.min(),phase.max()+1))
cb.ax.set_xticklabels(phase_name)
return CS,ax_cb,cb
def plot_props_VLH(sw,water,mmc5='../Driesner2007a/1-s2.0-S0016703707002943-mmc5.txt',mmc3='../Driesner2007b/1-s2.0-S0016703707002955-mmc3.txt'):
if(not os.path.exists(mmc5)):
print('Please set correct mmc1 file path: %s'%(mmc5))
exit()
data=np.loadtxt(mmc5, skiprows=7)
T0_5,P0_5,XV0_5,XL0_5=data[:,0]+273.15,data[:,1]*1E5,data[:,2],data[:,3]
if(not os.path.exists(mmc3)):
print('Please set correct mmc1 file path: %s'%(mmc3))
exit()
data=np.loadtxt(mmc3, skiprows=5)
T0,P0,XV0,rhoV0,hV0,XL0,rhoL0,hL0=data[:,0]+273.15,data[:,1]*1E5,data[:,2],data[:,3],data[:,4],data[:,5],data[:,6],data[:,7]
# calculate
T = np.linspace(H2ONaCl.T_MIN_VLH, H2ONaCl.T_MAX_VLH, 500)
P = np.array(sw.P_VLH(T))
# X_haliteLiquidus=np.array(sw.X_HaliteLiquidus(T,P))
XL_,XV_ = np.array(sw.X_VLH(T,P))
rhoV_, rhoL_ = np.array(sw.Rho_phase(T, P, XV_, H2ONaCl.Vapor)), np.array(sw.Rho_phase(T, P, XL_, H2ONaCl.Liquid))
hV_, hL_ = np.array(sw.H_phase(T, P, XV_, H2ONaCl.Vapor)), np.array(sw.H_phase(T, P, XL_, H2ONaCl.Liquid))
# plot
fig,axes = plt.subplots(1,6,figsize=(30,4),gridspec_kw={'wspace':0.1},sharey=False)
# 1. liquid salinity
ax=axes[0]
line=helpfunc.plot_coloredline(ax,np.array(sw.Wt2Mol(XL_)), T-273.15, P/1E5,cmap='rainbow')
ax_cb = ax.inset_axes([0.8,0.15,0.02,0.6])
fig.colorbar(line,cax = ax_cb,label='Pressure (bar)')
ax.plot(XL0_5, T0_5-273.15,color='gray',ls='dashed', marker='.',markersize=5,mec='w',mfc='k',markeredgewidth=0.3,label='Driesner & Heinrich(2007)')
ax.xaxis.set_major_locator(MultipleLocator(0.2))
ax.xaxis.set_minor_locator(MultipleLocator(0.04))
ax.set_xlabel('Liquid composition X$_{\mathregular{NaCl}}$ (mole fraction)')
# 2. vapor salinity
ax=axes[1]
helpfunc.plot_coloredline(ax,np.array(sw.Wt2Mol(XV_)), T-273.15, P/1E5,cmap='rainbow')
ax.set_xscale('log')
ax.plot(XV0_5, T0_5-273.15,color='gray',ls='dashed', marker='.',markersize=5,mec='w',mfc='k',markeredgewidth=0.3,label='Driesner & Heinrich(2007)')
ax.set_xlabel('Vapor composition X$_{\mathregular{NaCl}}$ (mole fraction)')
# 3. liquid density
ax=axes[2]
helpfunc.plot_coloredline(ax,rhoL_, T-273.15, P/1E5,cmap='rainbow')
ax.plot(rhoL0, T0-273.15,color='gray',ls='dashed', marker='.',markersize=5,mec='w',mfc='k',markeredgewidth=0.3,label='Driesner(2007)')
ax.xaxis.set_major_locator(MultipleLocator(100))
ax.xaxis.set_minor_locator(MultipleLocator(20))
ax.set_xlabel('Liquid density (kg/m$^{\mathregular{3}}$)')
# 4. Vapor density
ax=axes[3]
helpfunc.plot_coloredline(ax,rhoV_, T-273.15, P/1E5,cmap='rainbow')
ax.plot(rhoV0, T0-273.15,color='gray',ls='dashed', marker='.',markersize=5,mec='w',mfc='k',markeredgewidth=0.3,label='Driesner(2007)')
ax.xaxis.set_major_locator(MultipleLocator(20))
ax.xaxis.set_minor_locator(MultipleLocator(4))
ax.set_xlabel('Vapor density (kg/m$^{\mathregular{3}}$)')
# 5. liquid enthalpy
ax=axes[4]
helpfunc.plot_coloredline(ax,hL_/1E6, T-273.15, P/1E5,cmap='rainbow')
ax.plot(hL_/1E6, T-273.15,'.')
ax.plot(hL0/1E6, T0-273.15,color='gray',ls='dashed', marker='.',markersize=5,mec='w',mfc='k',markeredgewidth=0.3,label='Driesner(2007)')
ax.xaxis.set_major_locator(MultipleLocator(0.5))
ax.xaxis.set_minor_locator(MultipleLocator(0.1))
ax.set_xlabel('Liquid enthalpy (MJ/kg)')
# 6. vapor enthalpy
ax=axes[5]
helpfunc.plot_coloredline(ax,hV_/1E6, T-273.15, P/1E5,cmap='rainbow')
ax.plot(hV0/1E6, T0-273.15,color='gray',ls='dashed', marker='.',markersize=5,mec='w',mfc='k',markeredgewidth=0.3,label='Driesner(2007)')
ax.xaxis.set_major_locator(MultipleLocator(0.5))
ax.xaxis.set_minor_locator(MultipleLocator(0.1))
ax.set_xlabel('Vapor enthalpy (MJ/kg)')
for ax in axes:
ax.yaxis.set_major_locator(MultipleLocator(100))
ax.yaxis.set_minor_locator(MultipleLocator(20))
ax.grid(which='major',lw=0.04,color='k')
ax.grid(which='minor',lw=0.04,color='gray')
ax.axhline(H2ONaCl.T_MIN_VLH-273.15,label='T=%.2f $^{\circ}$C, p=1 bar'%(H2ONaCl.T_MIN_VLH-273.15),color='r',ls='dotted')
ax.legend()
# ax.set_ylim(300,T.max()-273.15 + 20)
axes[0].set_ylabel('Temperature ($^{\circ}$C)')
savefig('VLH_props_%s'%(sw.name_backend()))
# let's checkout what happens in the (low T, low p) and (high T, low p) region for the liquid enthalpy
q1,q2 = np.array(sw.q1q2_Tstar_H(P, XL_))
q1_v,q2_v = np.array(sw.q1q2_Tstar_H(P, XV_))
Tstar_H,Tstar_H_v = q1 + q2*(T-273.15) + 273.15, q1_v + q2_v*(T-273.15) + 273.15
n1,n2 = np.array(sw.n1n2_Tstar_V(P, XL_))
n1_v,n2_v = np.array(sw.n1n2_Tstar_V(P, XV_))
Tstar_V,Tstar_V_v = n1 + n2*(T-273.15) + 273.15, n1_v + n2_v*(T-273.15) + 273.15
T_water,p_water=np.linspace(np.array([T.min(),Tstar_H.min(),Tstar_H_v.min(),Tstar_V.min(),Tstar_V_v.min()]).min(),np.array([T.max(),Tstar_H.max(),Tstar_H_v.max(),Tstar_V.max(),Tstar_V_v.max()]).max()+100,1000), np.linspace(np.log10(P.min()),np.log10(P.max())+0.1,500)
TT,pp=np.meshgrid(T_water,10**p_water)
phase,rho,h = np.zeros_like(TT),np.zeros_like(TT),np.zeros_like(TT)
for i in range(0,TT.shape[0]):
for j in range(0,TT.shape[1]):
props = water.UpdateState_TPX(TT[i][j], pp[i][j])
phase[i][j]=props.phase
rho[i][j]=props.Rho
h[i][j]=props.H
# get phase names
phase_unique = np.sort(np.unique(phase))
phase_name = ['']*len(phase_unique)
for i,phase0 in enumerate(phase_unique):
phase[phase==phase0]=i+phase_unique.max()+10
phase_name[i]=water.phase_name(int(phase0))
fig,axes=plt.subplots(1,3,figsize=(21,5),gridspec_kw={'wspace':0.05},sharey=True)
axes[0].set_ylabel('Pressure (bar)')
l_L,l_V=[],[]
for ax,prop, cmap,label in zip(axes, [phase, rho, h/1E6],['Paired','YlGnBu_r','RdBu'],['Phase','Density (kg/m$^{\mathregular{3}}$)','Specific enthalpy (MJ/kg)']):
CS=[]
if(ax==axes[0]):
CS,ax_cb,cb=contourf_phase(ax,TT-273.15,pp/1E5,prop,phase_name,ax.inset_axes([0,1.03,1,0.03]))
else:
CS=ax.contourf(TT-273.15,pp/1E5,prop,levels=50,cmap=cmap)
ax_cb=ax.inset_axes([0,1.02,1,0.03])
plt.colorbar(CS,cax=ax_cb,label=label,orientation='horizontal')
ax_cb.xaxis.set_label_position('top')
ax_cb.xaxis.set_ticks_position('top')
l_L,=ax.plot(Tstar_H-273.15, P/1E5,lw=2,label='$T^*_h$: liquid')
l_V,=ax.plot(Tstar_H_v-273.15, P/1E5,lw=2,label='$T^*_h$: vapor')
ax.plot(Tstar_V-273.15, P/1E5,lw=2,ls='dashed',label='$T^*_V$: liquid')
ax.plot(Tstar_V_v-273.15, P/1E5,lw=2,ls='dashed',label='$T^*_V$: vapor')
ax.plot(T-273.15, P/1E5,lw=0.8,marker='.',markevery=20,mec='w',mew=0.5,ms=10,label='$T_{VLH}$')
ax.set_yscale('log')
ax.set_xscale('log')
ax.set_xlabel('Temperature ($^{\circ}$C)')
axes[0].legend(loc='center left') #,bbox_to_anchor=[1.01,0]
# x0,y0=Tstar_H[int(len(Tstar_H)/4)]-273.15,P[int(len(Tstar_H)/4)]/1E5
# axes[0].annotate("$T^{*}_h - p$ path of\nsaturated liquid phase\non VLH coexistence",
# xy=(x0,y0),xytext=(x0-100,y0), ha='right',va='center',bbox={'fc':'None','ec':l_L.get_color()},fontsize=14,fontweight='bold',
# arrowprops=dict(arrowstyle="->",connectionstyle="arc3"),)
# x0,y0=Tstar_H_v[int(len(Tstar_H)/5)]-273.15,P[int(len(Tstar_H)/5)]/1E5
# axes[0].annotate("$T^{*}_h - p$ path of\nsaturated vapor phase\non VLH coexistence",
# xy=(x0,y0),xytext=(x0,y0/100), ha='center',va='center',bbox={'fc':'None','ec':l_V.get_color()},fontsize=14,fontweight='bold',
# arrowprops=dict(arrowstyle="->",connectionstyle="arc3"),)
savefig('Tstar_VLH_%s'%(sw.name_backend()))
def mscatter(ax,x,y, m=None, **kw):
import matplotlib.markers as mmarkers
if not ax: ax=plt.gca()
sc = ax.scatter(x,y,**kw)
if (m is not None) and (len(m)==len(x)):
paths = []
for marker in m:
if isinstance(marker, mmarkers.MarkerStyle):
marker_obj = marker
else:
marker_obj = mmarkers.MarkerStyle(marker)
path = marker_obj.get_path().transformed(
marker_obj.get_transform())
paths.append(path)
sc.set_paths(paths)
return sc
def plot_err(ax,x,y,data,label='',cmap='rainbow',markers_VL=None,scale_data='log',vmin=1E-6,vmax=1):
# plot difference between xThermo and Driesner(2007b)
norm = None
if(scale_data=='log'):
norm = mpl.colors.LogNorm(vmin=vmin, vmax=vmax)
else:
norm = mpl.colors.CenteredNorm(vcenter=1)
cmap = 'seismic'
CS=mscatter(ax, x, y,c=data,m=markers_VL,cmap=cmap,norm=norm,zorder=3)
ax_cb=ax.inset_axes([0,1.02,1,0.05])
plt.colorbar(CS,cax=ax_cb,label=label,orientation='horizontal',extend='both')
ax_cb.xaxis.set_label_position('top')
ax_cb.xaxis.set_ticks_position('top')
if(markers_VL is not None):
ax.set_xlim(ax.get_xlim())
ax.set_ylim(ax.get_ylim())
ax.plot(-1,-1,markers_VL[0],label='Vapor')
ax.plot(-1,-1,markers_VL[-1],label='Liquid')
ax.legend(ncol=2)
def benchmark_VLH(sw,mmc3='../Driesner2007b/1-s2.0-S0016703707002955-mmc3.txt'):
# compare
if(not os.path.exists(mmc3)):
print('Please set correct mmc1 file path: %s'%(mmc3))
exit()
data=np.loadtxt(mmc3, skiprows=5)
T0,P0,XV0,rhoV0,hV0,XL0,rhoL0,hL0=data[:,0]+273.15,data[:,1]*1E5,data[:,2],data[:,3],data[:,4],data[:,5],data[:,6],data[:,7]
ind=(T0>sw.Tmin_VLH())
# only compare the result in valid range of pressure: >1bar
T0,P0,XV0,rhoV0,hV0,XL0,rhoL0,hL0 = T0[ind],P0[ind],XV0[ind],rhoV0[ind],hV0[ind],XL0[ind],rhoL0[ind],hL0[ind]
# 1. calculate halite liquidus
P_=np.array(sw.P_VLH(T0))
XL_,XV_ = np.array(sw.X_VLH(T0,P_))
XL_mol_,XV_mol_ = np.array(sw.Wt2Mol(XL_)), np.array(sw.Wt2Mol(XV_))
# 2. calculate saturated liquid density and vapor density
rhoV_, rhoL_ = np.array(sw.Rho_phase(T0, P_, XV_, H2ONaCl.Vapor)), np.array(sw.Rho_phase(T0, P_, XL_, H2ONaCl.Liquid))
hV_, hL_ = np.array(sw.H_phase(T0, P_, XV_, H2ONaCl.Vapor)), np.array(sw.H_phase(T0, P_, XL_, H2ONaCl.Liquid))
# compare result dict
Data0 = {'p':P0/1E5,'XV':XV0,'rhoV':rhoV0,'hV':hV0,'XL':XL0,'rhoL':rhoL0,'hL':hL0}
Data_ = {'p':P_/1E5,'XV':XV_mol_,'rhoV':rhoV_,'hV':hV_,'XL':XL_mol_,'rhoL':rhoL_,'hL':hL_}
Err,RErr={},{}
for key in Data0.keys(): Err[key],RErr[key] = Data0[key]-Data_[key], np.abs(Data0[key]-Data_[key])/(Data0[key])*100.0
# print to file
fpout = open('%s/mmc3_%s.csv'%(result_path,sw.name_backend()),'w')
fpout.write('T[C],P(Driesner)[bar],P(xThermo),P(diff)[bar],XV(Driesner)[mol],XV(xThermo)[mol],XV(diff)[mol],RhoV(Driesner)[kg/m3],RhoV(xThermo),RhoV(err),HV(Driesner)[J/kg],HV(xThermo),HV(err),XL(Driesner)[mol],XL(xThermo)[mol],XL(diff)[mol],RhoL(Driesner)[kg/m3],RhoL(xThermo),RhoL(err),HL(Driesner)[J/kg],HL(xThermo),HL(err)\n')
for i in range(0,len(T0)):
fpout.write('%.6e'%(T0[i]-273.15))
for key in Data0.keys():
fpout.write(',%.6e,%.6e,%.6e'%(Data0[key][i], Data_[key][i],compare(Data0[key][i],Data_[key][i])))
fpout.write('\n')
fpout.close()
# plot difference
offset_p = -100
fig,axes=plt.subplots(1,4,figsize=(21,5),sharey=True,gridspec_kw={'wspace':0.1})
plot_err(axes[0], T0, P0/1E5, RErr['p'],'Relative difference: Pressure (%)')
markers=np.repeat(["o", "*"], len(T0))
plot_err(axes[1], np.append(T0,T0), np.append(P0/1E5,P0/1E5+offset_p), np.append(RErr['XV'],RErr['XL']),'Relative difference: Composition (%)',markers_VL=markers)
plot_err(axes[2], np.append(T0,T0), np.append(P0/1E5,P0/1E5+offset_p), np.append(RErr['rhoV'],RErr['rhoL']),'Relative difference: Density (%)',markers_VL=markers)
plot_err(axes[3], np.append(T0,T0), np.append(P0/1E5,P0/1E5+offset_p), np.append(RErr['hV'],RErr['hL']),'Relative difference: Specific enthalpy (%)',markers_VL=markers)
for ax in axes:
ax.yaxis.set_major_locator(MultipleLocator(100))
ax.yaxis.set_minor_locator(MultipleLocator(20))
ax.xaxis.set_major_locator(MultipleLocator(100))
ax.xaxis.set_minor_locator(MultipleLocator(20))
ax.grid(which='major',lw=0.04,color='k')
ax.grid(which='minor',lw=0.04,color='gray')
ax.set_xlabel('Temperature ($^{\circ}$C)')
axes[0].set_ylabel('Pressure (bar)')
savefig('diff_VLH')
# statistics of the difference
table=[]
for key,name in zip(list(Err.keys()),['Pressure (bar)','XV (mole fraction)','RhoV (kg/m3)','HV (J/kg)','XL (mole fraction)','RhoL (kg/m3)','HL (J/kg)']):
RErr[key] = RErr[key][~(np.isnan(RErr[key]) | np.isinf(RErr[key]))]
table.append([name,Err[key].min(),Err[key].max(),RErr[key].min(),RErr[key].max()])
print(tabulate(table, headers=['Critical property', 'Err. Min', 'Err. Max','RE. Min(%)','RE. Max(%)'],numalign="right",floatfmt=".6f"))
Based on IAPS84 EOS
plot_props_VLH(sw_84,H2O.cIAPS84())
benchmark_VLH(sw_84)
Out:
Critical property Err. Min Err. Max RE. Min(%) RE. Max(%)
------------------- ---------- ------------ ------------ ------------
Pressure (bar) -0.000049 0.000047 0.000000 0.000046
XV (mole fraction) -0.000000 0.000000 0.000001 0.000086
RhoV (kg/m3) -0.000047 0.000051 0.000000 0.000044
HV (J/kg) -0.476585 0.496180 0.000000 0.000017
XL (mole fraction) -0.000000 0.000000 0.000000 0.000035
RhoL (kg/m3) -2.586687 0.573672 0.000069 0.221916
HL (J/kg) -0.397883 31484.746126 0.000000 2.880293
Based on IAPWS95 EOS
plot_props_VLH(sw_95,H2O.cIAPWS95_CoolProp()) benchmark_VLH(sw_95)
Warning
The \(T^*_h\) equation (22) in [Driesner, 2007] seems not valid for saturated liquid phase on VLH surface when in (low T, low p) and (high T, low p) regions, because the corrected \(T^*_h-p\) path cross the boiling curve of water (see above), therefore there are some value jupms on liquid enthalpy curve. However, [Driesner, 2007] gives some smooth values in low-p regions (see dashed lines with dots in above figures), how to get such values? Well, for the hydrothermal modeling, this issue is not that critical because the pressure always high (>=50bar).
Result table
Result data calculated by xThermo based on both water EOS of IAPS84 and IAPWS95.
See also
Electronic Annex EA-3 in [Driesner, 2007] and Fig. 11 in [Driesner & Heinrich, 2007].
T[C] |
P(Driesner)[bar] |
P(xThermo) |
P(diff)[bar] |
XV(Driesner)[mol] |
XV(xThermo)[mol] |
XV(diff)[mol] |
RhoV(Driesner)[kg/m3] |
RhoV(xThermo) |
RhoV(err) |
HV(Driesner)[J/kg] |
HV(xThermo) |
HV(err) |
XL(Driesner)[mol] |
XL(xThermo)[mol] |
XL(diff)[mol] |
RhoL(Driesner)[kg/m3] |
RhoL(xThermo) |
RhoL(err) |
HL(Driesner)[J/kg] |
HL(xThermo) |
HL(err) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1.100000e+02 |
1.076843e+00 |
1.076843e+00 |
0.000000e+00 |
1.224200e-12 |
1.224200e-12 |
0.000000e+00 |
6.178428e-01 |
6.178428e-01 |
0.000000e+00 |
2.695338e+06 |
2.695338e+06 |
0.000000e+00 |
1.086770e-01 |
1.086770e-01 |
0.000000e+00 |
1.165615e+03 |
1.168202e+03 |
-2.587000e+00 |
3.887576e+05 |
3.887576e+05 |
0.000000e+00 |
1.200000e+02 |
1.480065e+00 |
1.480065e+00 |
0.000000e+00 |
3.877098e-12 |
3.877098e-12 |
0.000000e+00 |
8.303800e-01 |
8.303800e-01 |
0.000000e+00 |
2.711467e+06 |
2.711467e+06 |
0.000000e+00 |
1.101720e-01 |
1.101720e-01 |
0.000000e+00 |
1.161810e+03 |
1.163876e+03 |
-2.066000e+00 |
4.210115e+05 |
4.210115e+05 |
0.000000e+00 |
1.300000e+02 |
1.996592e+00 |
1.996592e+00 |
0.000000e+00 |
1.130252e-11 |
1.130252e-11 |
0.000000e+00 |
1.096609e+00 |
1.096609e+00 |
0.000000e+00 |
2.727177e+06 |
2.727177e+06 |
0.000000e+00 |
1.117528e-01 |
1.117528e-01 |
0.000000e+00 |
1.157922e+03 |
1.159551e+03 |
-1.629000e+00 |
4.531268e+05 |
4.531268e+05 |
0.000000e+00 |
1.400000e+02 |
2.649862e+00 |
2.649862e+00 |
0.000000e+00 |
3.059775e-11 |
3.059775e-11 |
0.000000e+00 |
1.426443e+00 |
1.426443e+00 |
0.000000e+00 |
2.742413e+06 |
2.742413e+06 |
0.000000e+00 |
1.134206e-01 |
1.134206e-01 |
0.000000e+00 |
1.153969e+03 |
1.155221e+03 |
-1.252000e+00 |
4.850981e+05 |
4.850981e+05 |
0.000000e+00 |
1.500000e+02 |
3.466540e+00 |
3.466540e+00 |
0.000000e+00 |
7.743987e-11 |
7.743987e-11 |
0.000000e+00 |
1.831081e+00 |
1.831081e+00 |
0.000000e+00 |
2.757117e+06 |
2.757117e+06 |
0.000000e+00 |
1.151778e-01 |
1.151778e-01 |
0.000000e+00 |
1.149964e+03 |
1.150889e+03 |
-9.250000e-01 |
5.169183e+05 |
5.169183e+05 |
0.000000e+00 |
1.600000e+02 |
4.476529e+00 |
4.476529e+00 |
0.000000e+00 |
1.842399e-10 |
1.842399e-10 |
0.000000e+00 |
2.323025e+00 |
2.323025e+00 |
0.000000e+00 |
2.771227e+06 |
2.771227e+06 |
0.000000e+00 |
1.170283e-01 |
1.170283e-01 |
0.000000e+00 |
1.145922e+03 |
1.146563e+03 |
-6.410000e-01 |
5.485789e+05 |
5.485789e+05 |
0.000000e+00 |
1.700000e+02 |
5.712858e+00 |
5.712858e+00 |
0.000000e+00 |
4.140402e-10 |
4.140402e-10 |
0.000000e+00 |
2.916075e+00 |
2.916075e+00 |
0.000000e+00 |
2.784682e+06 |
2.784682e+06 |
0.000000e+00 |
1.189769e-01 |
1.189769e-01 |
0.000000e+00 |
1.141856e+03 |
1.142257e+03 |
-4.010000e-01 |
5.800697e+05 |
5.800697e+05 |
0.000000e+00 |
1.800000e+02 |
7.211468e+00 |
7.211468e+00 |
0.000000e+00 |
8.828598e-10 |
8.828598e-10 |
0.000000e+00 |
3.625293e+00 |
3.625293e+00 |
0.000000e+00 |
2.797422e+06 |
2.797422e+06 |
0.000000e+00 |
1.210297e-01 |
1.210297e-01 |
0.000000e+00 |
1.137784e+03 |
1.137991e+03 |
-2.070000e-01 |
6.113793e+05 |
6.113793e+05 |
0.000000e+00 |
1.900000e+02 |
9.010874e+00 |
9.010874e+00 |
0.000000e+00 |
1.793958e-09 |
1.793958e-09 |
0.000000e+00 |
4.466951e+00 |
4.466951e+00 |
0.000000e+00 |
2.809388e+06 |
2.809388e+06 |
0.000000e+00 |
1.231938e-01 |
1.231938e-01 |
0.000000e+00 |
1.133724e+03 |
1.133793e+03 |
-6.900000e-02 |
6.424942e+05 |
6.424942e+05 |
0.000000e+00 |
2.000000e+02 |
1.115172e+01 |
1.115172e+01 |
0.000000e+00 |
3.488547e-09 |
3.488547e-09 |
0.000000e+00 |
5.458452e+00 |
5.458452e+00 |
0.000000e+00 |
2.820528e+06 |
2.820528e+06 |
0.000000e+00 |
1.254775e-01 |
1.254775e-01 |
0.000000e+00 |
1.129696e+03 |
1.129695e+03 |
1.000000e-03 |
6.733992e+05 |
6.733992e+05 |
0.000000e+00 |
2.100000e+02 |
1.367623e+01 |
1.367623e+01 |
0.000000e+00 |
6.519220e-09 |
6.519220e-09 |
0.000000e+00 |
6.618226e+00 |
6.618226e+00 |
0.000000e+00 |
2.830793e+06 |
2.830793e+06 |
0.000000e+00 |
1.278900e-01 |
1.278900e-01 |
0.000000e+00 |
1.125722e+03 |
1.125718e+03 |
4.000000e-03 |
7.040770e+05 |
7.040769e+05 |
1.000000e-01 |
2.200000e+02 |
1.662757e+01 |
1.662757e+01 |
0.000000e+00 |
1.175532e-08 |
1.175532e-08 |
0.000000e+00 |
7.965607e+00 |
7.965607e+00 |
0.000000e+00 |
2.840144e+06 |
2.840144e+06 |
0.000000e+00 |
1.304413e-01 |
1.304413e-01 |
0.000000e+00 |
1.121822e+03 |
1.121817e+03 |
5.000000e-03 |
7.345074e+05 |
7.345074e+05 |
0.000000e+00 |
2.300000e+02 |
2.004914e+01 |
2.004914e+01 |
0.000000e+00 |
2.053458e-08 |
2.053458e-08 |
0.000000e+00 |
9.520674e+00 |
9.520674e+00 |
0.000000e+00 |
2.848552e+06 |
2.848552e+06 |
0.000000e+00 |
1.331423e-01 |
1.331423e-01 |
0.000000e+00 |
1.118017e+03 |
1.118012e+03 |
5.000000e-03 |
7.646678e+05 |
7.646678e+05 |
0.000000e+00 |
2.400000e+02 |
2.398373e+01 |
2.398373e+01 |
0.000000e+00 |
3.488410e-08 |
3.488410e-08 |
0.000000e+00 |
1.130405e+01 |
1.130405e+01 |
0.000000e+00 |
2.855997e+06 |
2.855997e+06 |
0.000000e+00 |
1.360050e-01 |
1.360050e-01 |
0.000000e+00 |
1.114335e+03 |
1.114330e+03 |
5.000000e-03 |
7.945321e+05 |
7.945321e+05 |
0.000000e+00 |
2.500000e+02 |
2.847274e+01 |
2.847274e+01 |
0.000000e+00 |
5.784812e-08 |
5.784812e-08 |
0.000000e+00 |
1.333665e+01 |
1.333665e+01 |
0.000000e+00 |
2.862472e+06 |
2.862472e+06 |
0.000000e+00 |
1.390418e-01 |
1.390418e-01 |
0.000000e+00 |
1.110802e+03 |
1.110796e+03 |
6.000000e-03 |
8.240708e+05 |
8.240708e+05 |
0.000000e+00 |
2.600000e+02 |
3.355527e+01 |
3.355527e+01 |
0.000000e+00 |
9.398356e-08 |
9.398356e-08 |
0.000000e+00 |
1.563936e+01 |
1.563936e+01 |
0.000000e+00 |
2.867988e+06 |
2.867988e+06 |
0.000000e+00 |
1.422660e-01 |
1.422660e-01 |
0.000000e+00 |
1.107447e+03 |
1.107441e+03 |
6.000000e-03 |
8.532506e+05 |
8.532506e+05 |
0.000000e+00 |
2.700000e+02 |
3.926720e+01 |
3.926720e+01 |
0.000000e+00 |
1.501216e-07 |
1.501216e-07 |
0.000000e+00 |
1.823261e+01 |
1.823261e+01 |
0.000000e+00 |
2.872567e+06 |
2.872567e+06 |
0.000000e+00 |
1.456913e-01 |
1.456913e-01 |
0.000000e+00 |
1.104301e+03 |
1.104295e+03 |
6.000000e-03 |
8.820340e+05 |
8.820340e+05 |
0.000000e+00 |
2.800000e+02 |
4.564030e+01 |
4.564030e+01 |
0.000000e+00 |
2.365514e-07 |
2.365514e-07 |
0.000000e+00 |
2.113582e+01 |
2.113582e+01 |
0.000000e+00 |
2.876252e+06 |
2.876252e+06 |
0.000000e+00 |
1.493322e-01 |
1.493322e-01 |
0.000000e+00 |
1.101398e+03 |
1.101393e+03 |
5.000000e-03 |
9.103795e+05 |
9.103795e+05 |
0.000000e+00 |
2.900000e+02 |
5.270133e+01 |
5.270133e+01 |
0.000000e+00 |
3.688709e-07 |
3.688709e-07 |
0.000000e+00 |
2.436673e+01 |
2.436673e+01 |
0.000000e+00 |
2.879107e+06 |
2.879107e+06 |
0.000000e+00 |
1.532036e-01 |
1.532036e-01 |
0.000000e+00 |
1.098773e+03 |
1.098767e+03 |
6.000000e-03 |
9.382411e+05 |
9.382411e+05 |
0.000000e+00 |
3.000000e+02 |
6.047119e+01 |
6.047119e+01 |
0.000000e+00 |
5.708744e-07 |
5.708744e-07 |
0.000000e+00 |
2.794041e+01 |
2.794041e+01 |
0.000000e+00 |
2.881217e+06 |
2.881217e+06 |
0.000000e+00 |
1.573207e-01 |
1.573207e-01 |
0.000000e+00 |
1.096462e+03 |
1.096456e+03 |
6.000000e-03 |
9.655686e+05 |
9.655686e+05 |
0.000000e+00 |
3.100000e+02 |
6.896404e+01 |
6.896404e+01 |
0.000000e+00 |
8.790270e-07 |
8.790270e-07 |
0.000000e+00 |
3.186817e+01 |
3.186817e+01 |
0.000000e+00 |
2.882692e+06 |
2.882692e+06 |
0.000000e+00 |
1.616990e-01 |
1.616990e-01 |
0.000000e+00 |
1.094502e+03 |
1.094496e+03 |
6.000000e-03 |
9.923080e+05 |
9.923080e+05 |
0.000000e+00 |
3.200000e+02 |
7.818661e+01 |
7.818661e+01 |
0.000000e+00 |
1.349297e-06 |
1.349297e-06 |
0.000000e+00 |
3.615613e+01 |
3.615613e+01 |
0.000000e+00 |
2.883668e+06 |
2.883668e+06 |
0.000000e+00 |
1.663545e-01 |
1.663545e-01 |
0.000000e+00 |
1.092933e+03 |
1.092926e+03 |
7.000000e-03 |
1.018401e+06 |
1.018401e+06 |
0.000000e+00 |
3.300000e+02 |
8.813747e+01 |
8.813747e+01 |
0.000000e+00 |
2.067356e-06 |
2.067356e-06 |
0.000000e+00 |
4.080361e+01 |
4.080361e+01 |
0.000000e+00 |
2.884310e+06 |
2.884310e+06 |
0.000000e+00 |
1.713030e-01 |
1.713030e-01 |
0.000000e+00 |
1.091793e+03 |
1.091786e+03 |
7.000000e-03 |
1.043787e+06 |
1.043787e+06 |
0.000000e+00 |
3.400000e+02 |
9.880643e+01 |
9.880643e+01 |
0.000000e+00 |
3.163311e-06 |
3.163311e-06 |
0.000000e+00 |
4.580128e+01 |
4.580128e+01 |
0.000000e+00 |
2.884810e+06 |
2.884810e+06 |
0.000000e+00 |
1.765608e-01 |
1.765608e-01 |
0.000000e+00 |
1.091122e+03 |
1.091116e+03 |
6.000000e-03 |
1.068402e+06 |
1.068402e+06 |
0.000000e+00 |
3.500000e+02 |
1.101741e+02 |
1.101741e+02 |
0.000000e+00 |
4.831712e-06 |
4.831712e-06 |
0.000000e+00 |
5.112938e+01 |
5.112938e+01 |
0.000000e+00 |
2.885386e+06 |
2.885386e+06 |
0.000000e+00 |
1.821439e-01 |
1.821439e-01 |
0.000000e+00 |
1.090960e+03 |
1.090954e+03 |
6.000000e-03 |
1.092181e+06 |
1.092181e+06 |
0.000000e+00 |
3.600000e+02 |
1.222113e+02 |
1.222113e+02 |
0.000000e+00 |
7.353896e-06 |
7.353896e-06 |
0.000000e+00 |
5.675612e+01 |
5.675612e+01 |
0.000000e+00 |
2.886280e+06 |
2.886280e+06 |
0.000000e+00 |
1.880683e-01 |
1.880683e-01 |
0.000000e+00 |
1.091345e+03 |
1.091338e+03 |
7.000000e-03 |
1.115058e+06 |
1.115058e+06 |
0.000000e+00 |
3.700000e+02 |
1.348791e+02 |
1.348791e+02 |
0.000000e+00 |
1.108310e-05 |
1.108310e-05 |
0.000000e+00 |
6.263659e+01 |
6.263659e+01 |
0.000000e+00 |
2.887746e+06 |
2.887746e+06 |
0.000000e+00 |
1.943500e-01 |
1.943500e-01 |
0.000000e+00 |
1.092313e+03 |
1.092306e+03 |
7.000000e-03 |
1.136968e+06 |
1.136968e+06 |
0.000000e+00 |
3.800000e+02 |
1.481286e+02 |
1.481286e+02 |
0.000000e+00 |
1.592905e-05 |
1.592905e-05 |
0.000000e+00 |
6.871223e+01 |
6.871223e+01 |
0.000000e+00 |
2.890049e+06 |
2.890049e+06 |
0.000000e+00 |
2.010048e-01 |
2.010048e-01 |
0.000000e+00 |
1.093898e+03 |
1.093891e+03 |
7.000000e-03 |
1.157848e+06 |
1.157848e+06 |
0.000000e+00 |
3.900000e+02 |
1.619005e+02 |
1.619005e+02 |
0.000000e+00 |
2.309145e-05 |
2.309145e-05 |
0.000000e+00 |
7.491287e+01 |
7.491287e+01 |
0.000000e+00 |
2.893440e+06 |
2.893440e+06 |
0.000000e+00 |
2.080482e-01 |
2.080482e-01 |
0.000000e+00 |
1.096131e+03 |
1.096124e+03 |
7.000000e-03 |
1.177640e+06 |
1.177640e+06 |
0.000000e+00 |
4.000000e+02 |
1.761260e+02 |
1.761260e+02 |
0.000000e+00 |
3.323791e-05 |
3.323792e-05 |
-1.000000e-11 |
8.115787e+01 |
8.115787e+01 |
0.000000e+00 |
2.898153e+06 |
2.898153e+06 |
0.000000e+00 |
2.154955e-01 |
2.154955e-01 |
0.000000e+00 |
1.099039e+03 |
1.099031e+03 |
8.000000e-03 |
1.196287e+06 |
1.196287e+06 |
0.000000e+00 |
4.100000e+02 |
1.907265e+02 |
1.907265e+02 |
0.000000e+00 |
4.661210e-05 |
4.661210e-05 |
0.000000e+00 |
8.735924e+01 |
8.735924e+01 |
0.000000e+00 |
2.904397e+06 |
2.904397e+06 |
0.000000e+00 |
2.233616e-01 |
2.233616e-01 |
0.000000e+00 |
1.102643e+03 |
1.102635e+03 |
8.000000e-03 |
1.213743e+06 |
1.213743e+06 |
0.000000e+00 |
4.200000e+02 |
2.056139e+02 |
2.056139e+02 |
0.000000e+00 |
6.312192e-05 |
6.312192e-05 |
0.000000e+00 |
9.342567e+01 |
9.342567e+01 |
0.000000e+00 |
2.912344e+06 |
2.912344e+06 |
0.000000e+00 |
2.316612e-01 |
2.316612e-01 |
0.000000e+00 |
1.106959e+03 |
1.106951e+03 |
8.000000e-03 |
1.229966e+06 |
1.229966e+06 |
0.000000e+00 |
4.300000e+02 |
2.206918e+02 |
2.206918e+02 |
0.000000e+00 |
8.228289e-05 |
8.228290e-05 |
-1.000000e-11 |
9.926656e+01 |
9.926656e+01 |
0.000000e+00 |
2.922124e+06 |
2.922124e+06 |
0.000000e+00 |
2.404086e-01 |
2.404087e-01 |
-1.000000e-07 |
1.111998e+03 |
1.111989e+03 |
9.000000e-03 |
1.244923e+06 |
1.244923e+06 |
0.000000e+00 |
4.400000e+02 |
2.358556e+02 |
2.358556e+02 |
0.000000e+00 |
1.032952e-04 |
1.032952e-04 |
0.000000e+00 |
1.047961e+02 |
1.047961e+02 |
0.000000e+00 |
2.933827e+06 |
2.933827e+06 |
0.000000e+00 |
2.496179e-01 |
2.496179e-01 |
0.000000e+00 |
1.117763e+03 |
1.117754e+03 |
9.000000e-03 |
1.258590e+06 |
1.258590e+06 |
0.000000e+00 |
4.500000e+02 |
2.509935e+02 |
2.509935e+02 |
0.000000e+00 |
1.252098e-04 |
1.252098e-04 |
0.000000e+00 |
1.099370e+02 |
1.099370e+02 |
0.000000e+00 |
2.947500e+06 |
2.947500e+06 |
0.000000e+00 |
2.593027e-01 |
2.593027e-01 |
0.000000e+00 |
1.124252e+03 |
1.124243e+03 |
9.000000e-03 |
1.270951e+06 |
1.270951e+06 |
0.000000e+00 |
4.600000e+02 |
2.659875e+02 |
2.659875e+02 |
0.000000e+00 |
1.471108e-04 |
1.471109e-04 |
-1.000000e-10 |
1.146224e+02 |
1.146224e+02 |
0.000000e+00 |
2.963152e+06 |
2.963152e+06 |
0.000000e+00 |
2.694764e-01 |
2.694764e-01 |
0.000000e+00 |
1.131455e+03 |
1.131446e+03 |
9.000000e-03 |
1.281998e+06 |
1.281998e+06 |
0.000000e+00 |
4.700000e+02 |
2.807141e+02 |
2.807141e+02 |
0.000000e+00 |
1.682544e-04 |
1.682544e-04 |
0.000000e+00 |
1.187982e+02 |
1.187982e+02 |
0.000000e+00 |
2.980763e+06 |
2.980763e+06 |
0.000000e+00 |
2.801520e-01 |
2.801520e-01 |
0.000000e+00 |
1.139357e+03 |
1.139348e+03 |
9.000000e-03 |
1.291734e+06 |
1.291734e+06 |
0.000000e+00 |
4.800000e+02 |
2.950460e+02 |
2.950460e+02 |
0.000000e+00 |
1.881345e-04 |
1.881345e-04 |
0.000000e+00 |
1.224229e+02 |
1.224229e+02 |
0.000000e+00 |
3.000283e+06 |
3.000283e+06 |
0.000000e+00 |
2.913424e-01 |
2.913424e-01 |
0.000000e+00 |
1.147937e+03 |
1.147928e+03 |
9.000000e-03 |
1.300167e+06 |
1.300167e+06 |
0.000000e+00 |
4.900000e+02 |
3.088529e+02 |
3.088529e+02 |
0.000000e+00 |
2.064848e-04 |
2.064848e-04 |
0.000000e+00 |
1.254670e+02 |
1.254670e+02 |
0.000000e+00 |
3.021648e+06 |
3.021648e+06 |
0.000000e+00 |
3.030602e-01 |
3.030602e-01 |
0.000000e+00 |
1.157169e+03 |
1.157159e+03 |
1.000000e-02 |
1.307313e+06 |
1.307313e+06 |
0.000000e+00 |
5.000000e+02 |
3.220027e+02 |
3.220027e+02 |
0.000000e+00 |
2.232388e-04 |
2.232388e-04 |
0.000000e+00 |
1.279121e+02 |
1.279121e+02 |
0.000000e+00 |
3.044776e+06 |
3.044776e+06 |
0.000000e+00 |
3.153180e-01 |
3.153180e-01 |
0.000000e+00 |
1.167021e+03 |
1.167011e+03 |
1.000000e-02 |
1.313192e+06 |
1.313192e+06 |
0.000000e+00 |
5.100000e+02 |
3.343633e+02 |
3.343633e+02 |
0.000000e+00 |
2.386012e-04 |
2.386013e-04 |
-1.000000e-10 |
1.297493e+02 |
1.297493e+02 |
0.000000e+00 |
3.069581e+06 |
3.069581e+06 |
0.000000e+00 |
3.281281e-01 |
3.281281e-01 |
0.000000e+00 |
1.177459e+03 |
1.177448e+03 |
1.100000e-02 |
1.317830e+06 |
1.317830e+06 |
0.000000e+00 |
5.200000e+02 |
3.458035e+02 |
3.458035e+02 |
0.000000e+00 |
2.523677e-04 |
2.523679e-04 |
-2.000000e-10 |
1.309768e+02 |
1.309768e+02 |
0.000000e+00 |
3.095975e+06 |
3.095975e+06 |
0.000000e+00 |
3.415028e-01 |
3.415028e-01 |
0.000000e+00 |
1.188445e+03 |
1.188434e+03 |
1.100000e-02 |
1.321257e+06 |
1.321257e+06 |
0.000000e+00 |
5.300000e+02 |
3.561946e+02 |
3.561946e+02 |
0.000000e+00 |
2.640061e-04 |
2.640062e-04 |
-1.000000e-10 |
1.315988e+02 |
1.315988e+02 |
0.000000e+00 |
3.123871e+06 |
3.123871e+06 |
0.000000e+00 |
3.554545e-01 |
3.554545e-01 |
0.000000e+00 |
1.199939e+03 |
1.199928e+03 |
1.100000e-02 |
1.323505e+06 |
1.323505e+06 |
0.000000e+00 |
5.400000e+02 |
3.654117e+02 |
3.654117e+02 |
0.000000e+00 |
2.730387e-04 |
2.730389e-04 |
-2.000000e-10 |
1.316244e+02 |
1.316244e+02 |
0.000000e+00 |
3.153183e+06 |
3.153183e+06 |
0.000000e+00 |
3.699956e-01 |
3.699956e-01 |
0.000000e+00 |
1.211900e+03 |
1.211888e+03 |
1.200000e-02 |
1.324608e+06 |
1.324608e+06 |
0.000000e+00 |
5.500000e+02 |
3.733353e+02 |
3.733353e+02 |
0.000000e+00 |
2.790616e-04 |
2.790618e-04 |
-2.000000e-10 |
1.310675e+02 |
1.310674e+02 |
1.000000e-04 |
3.183828e+06 |
3.183828e+06 |
0.000000e+00 |
3.851384e-01 |
3.851384e-01 |
0.000000e+00 |
1.224284e+03 |
1.224272e+03 |
1.200000e-02 |
1.324602e+06 |
1.324602e+06 |
0.000000e+00 |
5.600000e+02 |
3.798522e+02 |
3.798522e+02 |
0.000000e+00 |
2.817623e-04 |
2.817625e-04 |
-2.000000e-10 |
1.299449e+02 |
1.299449e+02 |
0.000000e+00 |
3.215724e+06 |
3.215724e+06 |
0.000000e+00 |
4.008955e-01 |
4.008956e-01 |
-1.000000e-07 |
1.237051e+03 |
1.237038e+03 |
1.300000e-02 |
1.323522e+06 |
1.323522e+06 |
0.000000e+00 |
5.700000e+02 |
3.848571e+02 |
3.848571e+02 |
0.000000e+00 |
2.809375e-04 |
2.809377e-04 |
-2.000000e-10 |
1.282768e+02 |
1.282768e+02 |
0.000000e+00 |
3.248791e+06 |
3.248791e+06 |
0.000000e+00 |
4.172798e-01 |
4.172798e-01 |
0.000000e+00 |
1.250157e+03 |
1.250144e+03 |
1.300000e-02 |
1.321403e+06 |
1.321403e+06 |
0.000000e+00 |
5.800000e+02 |
3.882536e+02 |
3.882536e+02 |
0.000000e+00 |
2.765080e-04 |
2.765082e-04 |
-2.000000e-10 |
1.260856e+02 |
1.260856e+02 |
0.000000e+00 |
3.282951e+06 |
3.282951e+06 |
0.000000e+00 |
4.343040e-01 |
4.343040e-01 |
0.000000e+00 |
1.263561e+03 |
1.263548e+03 |
1.300000e-02 |
1.318281e+06 |
1.318281e+06 |
0.000000e+00 |
5.900000e+02 |
3.899551e+02 |
3.899551e+02 |
0.000000e+00 |
2.685299e-04 |
2.685301e-04 |
-2.000000e-10 |
1.233958e+02 |
1.233958e+02 |
0.000000e+00 |
3.318126e+06 |
3.318126e+06 |
0.000000e+00 |
4.519813e-01 |
4.519813e-01 |
0.000000e+00 |
1.277224e+03 |
1.277210e+03 |
1.400000e-02 |
1.314187e+06 |
1.314187e+06 |
0.000000e+00 |
6.000000e+02 |
3.898861e+02 |
3.898861e+02 |
0.000000e+00 |
2.572002e-04 |
2.572003e-04 |
-1.000000e-10 |
1.202335e+02 |
1.202335e+02 |
0.000000e+00 |
3.354241e+06 |
3.354241e+06 |
0.000000e+00 |
4.703249e-01 |
4.703249e-01 |
0.000000e+00 |
1.291108e+03 |
1.291093e+03 |
1.500000e-02 |
1.314038e+06 |
1.305679e+06 |
8.359000e+03 |
6.100000e+02 |
3.879827e+02 |
3.879827e+02 |
0.000000e+00 |
2.428548e-04 |
2.428550e-04 |
-2.000000e-10 |
1.166262e+02 |
1.166262e+02 |
0.000000e+00 |
3.391220e+06 |
3.391220e+06 |
0.000000e+00 |
4.893482e-01 |
4.893483e-01 |
-1.000000e-07 |
1.305176e+03 |
1.305162e+03 |
1.400000e-02 |
1.308676e+06 |
1.299684e+06 |
8.992000e+03 |
6.200000e+02 |
3.841930e+02 |
3.841930e+02 |
0.000000e+00 |
2.259578e-04 |
2.259580e-04 |
-2.000000e-10 |
1.126027e+02 |
1.126027e+02 |
0.000000e+00 |
3.428986e+06 |
3.428986e+06 |
0.000000e+00 |
5.090650e-01 |
5.090651e-01 |
-1.000000e-07 |
1.319398e+03 |
1.319382e+03 |
1.600000e-02 |
1.302491e+06 |
1.292843e+06 |
9.648000e+03 |
6.300000e+02 |
3.784779e+02 |
3.784779e+02 |
0.000000e+00 |
2.070803e-04 |
2.070805e-04 |
-2.000000e-10 |
1.081924e+02 |
1.081924e+02 |
0.000000e+00 |
3.467464e+06 |
3.467464e+06 |
0.000000e+00 |
5.294890e-01 |
5.294890e-01 |
0.000000e+00 |
1.333741e+03 |
1.333725e+03 |
1.600000e-02 |
1.295510e+06 |
1.285185e+06 |
1.032500e+04 |
6.400000e+02 |
3.708112e+02 |
3.708112e+02 |
0.000000e+00 |
1.868697e-04 |
1.868698e-04 |
-1.000000e-10 |
1.034255e+02 |
1.034255e+02 |
0.000000e+00 |
3.506576e+06 |
3.506576e+06 |
0.000000e+00 |
5.506338e-01 |
5.506339e-01 |
-1.000000e-07 |
1.348181e+03 |
1.348163e+03 |
1.800000e-02 |
1.287760e+06 |
1.276733e+06 |
1.102700e+04 |
6.500000e+02 |
3.611795e+02 |
3.611795e+02 |
0.000000e+00 |
1.660102e-04 |
1.660103e-04 |
-1.000000e-10 |
9.833198e+01 |
9.833198e+01 |
0.000000e+00 |
3.546246e+06 |
3.546246e+06 |
0.000000e+00 |
5.725135e-01 |
5.725135e-01 |
0.000000e+00 |
1.362692e+03 |
1.362673e+03 |
1.900000e-02 |
1.279267e+06 |
1.267510e+06 |
1.175700e+04 |
6.600000e+02 |
3.495818e+02 |
3.495818e+02 |
0.000000e+00 |
1.451794e-04 |
1.451795e-04 |
-1.000000e-10 |
9.294209e+01 |
9.294209e+01 |
0.000000e+00 |
3.586397e+06 |
3.586397e+06 |
0.000000e+00 |
5.951418e-01 |
5.951418e-01 |
0.000000e+00 |
1.377254e+03 |
1.377231e+03 |
2.300000e-02 |
1.270054e+06 |
1.257532e+06 |
1.252200e+04 |
6.700000e+02 |
3.360296e+02 |
3.360296e+02 |
0.000000e+00 |
1.250038e-04 |
1.250039e-04 |
-1.000000e-10 |
8.728546e+01 |
8.728546e+01 |
0.000000e+00 |
3.626950e+06 |
3.626950e+06 |
0.000000e+00 |
6.185324e-01 |
6.185324e-01 |
0.000000e+00 |
1.391846e+03 |
1.391819e+03 |
2.700000e-02 |
1.260144e+06 |
1.246814e+06 |
1.333000e+04 |
6.800000e+02 |
3.205456e+02 |
3.205456e+02 |
0.000000e+00 |
1.060195e-04 |
1.060196e-04 |
-1.000000e-10 |
8.139101e+01 |
8.139101e+01 |
0.000000e+00 |
3.667830e+06 |
3.667830e+06 |
0.000000e+00 |
6.426988e-01 |
6.426988e-01 |
0.000000e+00 |
1.406447e+03 |
1.406413e+03 |
3.400000e-02 |
1.249559e+06 |
1.235367e+06 |
1.419200e+04 |
6.900000e+02 |
3.031631e+02 |
3.031631e+02 |
0.000000e+00 |
8.864348e-05 |
8.864353e-05 |
-5.000000e-11 |
7.528658e+01 |
7.528658e+01 |
0.000000e+00 |
3.708960e+06 |
3.708960e+06 |
0.000000e+00 |
6.676543e-01 |
6.676543e-01 |
0.000000e+00 |
1.421033e+03 |
1.420990e+03 |
4.300000e-02 |
1.238317e+06 |
1.223198e+06 |
1.511900e+04 |
7.000000e+02 |
2.839251e+02 |
2.839251e+02 |
0.000000e+00 |
7.315776e-05 |
7.315780e-05 |
-4.000000e-11 |
6.899872e+01 |
6.899872e+01 |
0.000000e+00 |
3.750267e+06 |
3.750267e+06 |
0.000000e+00 |
6.934117e-01 |
6.934117e-01 |
0.000000e+00 |
1.435572e+03 |
1.435516e+03 |
5.600000e-02 |
1.226436e+06 |
1.210311e+06 |
1.612500e+04 |
7.100000e+02 |
2.628823e+02 |
2.628823e+02 |
0.000000e+00 |
5.970889e-05 |
5.970892e-05 |
-3.000000e-11 |
6.255233e+01 |
6.255233e+01 |
0.000000e+00 |
3.791677e+06 |
3.791677e+06 |
0.000000e+00 |
7.199835e-01 |
7.199835e-01 |
0.000000e+00 |
1.450017e+03 |
1.449943e+03 |
7.400000e-02 |
1.213934e+06 |
1.196708e+06 |
1.722600e+04 |
7.200000e+02 |
2.400921e+02 |
2.400921e+02 |
0.000000e+00 |
4.832134e-05 |
4.832136e-05 |
-2.000000e-11 |
5.597053e+01 |
5.597053e+01 |
0.000000e+00 |
3.833121e+06 |
3.833121e+06 |
0.000000e+00 |
7.473816e-01 |
7.473816e-01 |
0.000000e+00 |
1.464298e+03 |
1.464200e+03 |
9.800000e-02 |
1.200825e+06 |
1.182389e+06 |
1.843600e+04 |
7.300000e+02 |
2.156167e+02 |
2.156167e+02 |
0.000000e+00 |
3.892226e-05 |
3.892228e-05 |
-2.000000e-11 |
4.927440e+01 |
4.927440e+01 |
0.000000e+00 |
3.874532e+06 |
3.874532e+06 |
0.000000e+00 |
7.756174e-01 |
7.756175e-01 |
-1.000000e-07 |
1.478314e+03 |
1.478184e+03 |
1.300000e-01 |
1.187122e+06 |
1.167350e+06 |
1.977200e+04 |
7.400000e+02 |
1.895214e+02 |
1.895214e+02 |
0.000000e+00 |
3.137444e-05 |
3.137445e-05 |
-1.000000e-11 |
4.248285e+01 |
4.248285e+01 |
0.000000e+00 |
3.915849e+06 |
3.915849e+06 |
0.000000e+00 |
8.047018e-01 |
8.047018e-01 |
0.000000e+00 |
1.491915e+03 |
1.491744e+03 |
1.710000e-01 |
1.172840e+06 |
1.151587e+06 |
2.125300e+04 |
7.500000e+02 |
1.618724e+02 |
1.618724e+02 |
0.000000e+00 |
2.551608e-05 |
2.551609e-05 |
-1.000000e-11 |
3.561250e+01 |
3.561250e+01 |
0.000000e+00 |
3.957013e+06 |
3.957013e+06 |
0.000000e+00 |
8.346448e-01 |
8.346449e-01 |
-1.000000e-07 |
1.504902e+03 |
1.504678e+03 |
2.240000e-01 |
1.157990e+06 |
1.135093e+06 |
2.289700e+04 |
7.600000e+02 |
1.327350e+02 |
1.327350e+02 |
0.000000e+00 |
2.121360e-05 |
2.121361e-05 |
-1.000000e-11 |
2.867762e+01 |
2.867762e+01 |
0.000000e+00 |
3.997971e+06 |
3.997971e+06 |
0.000000e+00 |
8.654562e-01 |
8.654562e-01 |
0.000000e+00 |
1.517018e+03 |
1.516729e+03 |
2.890000e-01 |
1.142582e+06 |
1.117860e+06 |
2.472200e+04 |
7.700000e+02 |
1.021716e+02 |
1.021716e+02 |
0.000000e+00 |
1.846040e-05 |
1.846040e-05 |
0.000000e+00 |
2.169011e+01 |
2.169011e+01 |
0.000000e+00 |
4.038676e+06 |
4.038676e+06 |
0.000000e+00 |
8.971448e-01 |
8.971449e-01 |
-1.000000e-07 |
1.527976e+03 |
1.527608e+03 |
3.680000e-01 |
1.126627e+06 |
1.099878e+06 |
2.674900e+04 |
7.800000e+02 |
7.023945e+01 |
7.023945e+01 |
0.000000e+00 |
1.769436e-05 |
1.769436e-05 |
0.000000e+00 |
1.465964e+01 |
1.465964e+01 |
0.000000e+00 |
4.079085e+06 |
4.079085e+06 |
0.000000e+00 |
9.297195e-01 |
9.297195e-01 |
0.000000e+00 |
1.537505e+03 |
1.537042e+03 |
4.630000e-01 |
1.110133e+06 |
1.081136e+06 |
2.899700e+04 |
7.900000e+02 |
3.698947e+01 |
3.698947e+01 |
0.000000e+00 |
2.180569e-05 |
2.180569e-05 |
0.000000e+00 |
7.593799e+00 |
7.593799e+00 |
0.000000e+00 |
4.119149e+06 |
4.119149e+06 |
0.000000e+00 |
9.631885e-01 |
9.631885e-01 |
0.000000e+00 |
1.545472e+03 |
1.544898e+03 |
5.740000e-01 |
1.093109e+06 |
1.061624e+06 |
3.148500e+04 |
Tip
The help function for 3D plot can be downloaded at here: helpfunc.py
Total running time of the script: ( 1 minutes 12.265 seconds)