Skip to main content

Posts

Showing posts from July, 2015

CMG热采STARS模拟器中的组分吸附

  个人总结,某相中某种组分的吸附产生的影响有三个:(1)影响质量守恒方程中的累积项;(2)对流体的渗透性产生影响;(3)对孔隙度产生影响。 使用: 1 吸附组分设置     ADSCOMP   comp_des              phase_des           吸附函数应用到的组分名或号   吸附组分的依赖相           即phase_des中的comp_des组分会被吸附 1.1 如果吸附与温度有关     ADSLANG  TEMP           tads  tad1  tad2  tad3          温度  系数1  系数2  系数3   或者     ADSTABLE           TEMP  tads1  **温度           cpt1  adt1  **cpt为comp_des在phase_des内的mole分数,递增           cpt2  adt2  **adt为在cpt下单位孔隙体积的吸附mole数           ...   ...           TEMP   tads2           cpt1  adt1           cpt2  adt2           ...   ... 1.2 如果吸附与温度无关     ADSLANG  tad1  tad2  tad3   或者     ADSTABLE           cpt1  adt1           cpt2  adt2           ...   ... 2 吸附岩石设置     ADSROCK  key  **岩石类型数,只有一种岩石缺省为1     ADMAXT  admaxt  **最大吸附容量(mol/m3)     ADRT  adrt  **残余吸附水平(mol/m3),0~admaxt。0为完全可逆,admaxt为完全不可逆     PORFT  porft  **可进入的孔隙体积分数     RRFT  rrft  **吸附组分的残余阻力因子,>=1.0。     ADSDEN  cncco  ** 处于吸附状态的每个纯组分的mole密度(mol/m3)     ADST

[原]快速傅里叶变换用于长整数相乘

作图代码: data = [] with open('fft-ifft.txt','r') as f: for line in f: splitlist = line.replace('\n','').split(' ') data.append([splitlist[2],splitlist[6],splitlist[10]]) data = np.array(data).astype(float) plt.plot(data[:,0],data[:,1],'k.-',label=u'普通方法') plt.plot(data[:,0],data[:,2],'r+-',label=u'快速傅里叶变换') plt.xlabel(u'问题规模(n)',{'fontname':'STFangsong','fontsize':18}) plt.ylabel(u'计算时间(s)',{'fontname':'STFangsong','fontsize':18}) plt.title(u'快速傅里叶变换的效率提升',{'fontname':'STFangsong','fontsize':18}) plt.legend(loc="upper left",numpoints = 1,prop={'family':'SimHei','size':15}) savefig('fft-ifft.png',dpi=200,bbox_inches='tight') 本文分别用常规方法和FFT方法来计算长整数乘积,并对这两种方法的效率进行对比。 普通方法 我们计算以下两个长整数的积 A = ( a m − 1 a m − 2 ⋯ a 1 a 0 ) 10 = a m − 1 10 m − 1 + a m −

CMG热采STARS模拟器粘度非线性混合的使用

关键字用法:   *VSMIXCOMP comp_des   *VSMIXENDP xlow xhigh   *VSMIXFUNC f(1)...f(11)   comp_des  在粘度非线性混合中关键组分的名称或序号。   xlow     对应于第一个表格元素的横坐标。允许的范围是0~xhigh。   xhigh    对应于最后一个表格元素的横坐标。允许的范围是xlow~1。   f(1)...f(11)   表格元素定义的非线性混合规则函数,这个函数应该是单调递增的,并且应该是平滑的。   缺省:     如果*VSMIXCOMP不存在,则假设对所有组分进行线性混合。     如果*VSMIXENDP不存在,则假设xlow=0,xhigh=1。     如果*VSMIXFUNC不存在,则表格输入f(i)=(i-1)/10,i=1到11,对应于0到1之间的线性间隔。 算法:   首先线性混合的规则为                  使用表征非线性的 代替 ,其中a为关键组分。但是仍然需要满足和为1的条件,即                  由上式可以得出                  因此对于粘度的非线性混合规则可以表示为                  对于任意的 就有三个范围去得到相应的 的值                               的值从输入的表中得到                 可以用下图表示其含义:  通过上述非线性混合的式子可以推导出 的计算方法                                 将 , 和中间等距间隔的9个值分别代入上述式子中,得到*VSMIXFUNC关键字中需要输入的11个值。   如果 ,则非线性混合规则退化为线性混合规则。 查看输出:   通过*OUTPRN和*GRID的*VISCCMP子关键字,以及*OUTSRF *GRID的*VISWCMP和*VISOCMP子关键字和*SPECIAL检查粘度非线性混合关键组分的组成。 例子:   以下数据和计算都是在同一温度下进行。 一种沥青粘度为 ,一种纯溶解剂的浓度为 ,主要组分为溶解剂。其两者混合后的粘度表示为下图所