Simple Ro模型代码示例

      学习札记 2009-11-15 11:08:00

  Simple Ro 是由日本学者Suzuki1993[1]提出的计算镜质体反射率的模型。该模型认为在每个温度点下,化学反应是单一的(相对于平行反应模型),其对应的活化能称为表观活化能(apparent activation energyEapp)”。表观活化能随Ro的增加而增大,其关系可以用Eapp=alpha*lnRo+beta来表示。Simple Ro的优点的在于可以通过拟合不同的alphabeta,将现有的镜质体反射率模型转换成Simple Ro模型,也可以用实测Ro数据来拟合alphaBeta得到新的Ro模型。事实上,不同盆地沉积的镜质体由于化学成分和化学结构不同,其反射率的演化路径也不完全等同于Easy%Ro(目前广泛应用的Ro校正模型),如富氢镜质体,受到超压作用的镜质体等[2]Ro模型作为目前热史校正的重要参考,其可靠性直接影响到最终的烃源岩评价。下面提供的代码是以2C/Ma为加热速率,计算1~300C温度区间Ro的变化,结果输出到文本文件,simpleRo.txt。图1是用OrgPlusThe next release of Z-Kinetics)生成的同等条件下(2C/MaEasy%Ro与用Easy%Ro拟合的Simple Ro模型比较,从图上可以看出两者计算结果相差很小。

Ref
[1]Noriyuki Suzuki, Hideki Matsubayashi, et.al., A Simple Kinetic Model of Vitrinite Reflectance, AAPG Bull, 1993, 77:1502-1508.
[2]Buchardt,B., and M.D .Lewan, Reflectance of Vitrinite-like macerals as a thermal maturity index for Cambrian-Ordovician Alum Shale, Southern Scandinavia: AAPG Bull,1990, 74:394-406.
 
#-*-coding:cp936-*-
#Test on Python 2.6 By zenghuasen
#License Free
import math
import os
alpha=9.7
beta=54.1
PRO=0.2
ROO=0.2
Ea=0
s=0
F=0.85
FC=0
RO=0.2
oFile=open("simpleRo.txt",'w')
for i in range(1,301):
#Ea=alpha*ln(RO)+Beta
    Ea=alpha*math.log(PRO)+beta
Ea= 4186.8*Ea
#duration time (0.5Ma )as second
DT=0.5*1.0e+6*365*24*60*60
    s=s+1.0e+13*math.exp(-Ea/(8.314*(i+273.15)))*DT
    if(s>500):
        FC=F
        print(str(i)+ " " + str(FC))
    else:
        FC=F*(1.0-math.exp(-s))
    RO=math.exp(math.log(ROO)+3.7*FC)
    oFile.write(str(i)+"\\t"+str(RO)+"\\n")
    PRO=RO
oFile.close()
print("任意键退出")
okExit=raw_input()

标签集:TAGS:生烃动力学 Python
回复Comments() 点击Count()
喜欢就顶一下

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}