下降曲线库
petbox-dca的Python项目详细描述
生产数据的实证分析需要实施数个多年的下降曲线模型和多个SPE出版物。此外,综合分析需要在多个诊断图及其各自的绘图功能之间进行图形分析。虽然每个模型的q(t)(rate)函数可能很简单,但是N(t)(累计体积)可能不是。例如,双曲线模型有三种不同的形式(双曲型、调和型、指数型),这就很复杂,因为可能有多个分段,每一个分段在速率导数中都必须是连续的。或者,在幂律指数模型的情况下,必须对N(t)函数进行数值计算。在
这个库为每个实现的下降曲线模型定义了一个接口。每个模型都有参数值的验证检查,并提供简单易用的方法来计算time数组,以获得所需的函数输出。在
此外,我们还定义了一个接口,将GOR/CGR屈服函数附加到任何初级阶段模型。然后,我们可以像初级相位一样容易地获得次级相位的输出。在
尽可能实现分析函数。如果不可能,则使用scipy.integrate.fixed_quad执行数值计算。考虑到大多数需要数值计算的感兴趣函数都是单调的,这通常很有效。在
Primary Phase | Transient Hyperbolic, Modified Hyperbolic, Power-Law Exponential, Stretched Exponential, Duong |
Secondary Phase | Power-Law Yield |
Water Phase | Power-Law Yield |
以下函数公开供使用
^{tb2}$入门
使用pip安装库:
pip install petbox-dca
为了方便起见,还提供了一个默认的时间数组,该数组包含5个对数周期内的等间距值。在
^{pr2}$我们还可以附加二次相和水相模型,并同样容易地评估速率。在
>>>mh.add_secondary(dca.PLYield(c=1200.0,m0=0.0,m=0.6,t0=180.0,min=None,max=20_000.0))>>>mh.secondary.rate(t)array([1184.086,1179.346,1173.231,...,0.000])>>>mh.add_water(dca.PLYield(c=2.0,m0=0.0,m=0.1,t0=90.0,min=None,max=10.0))>>>mh.water.rate(t)array([1.950,1.935,1.917,...,0.000])
一旦实例化,附加辅助阶段的相同功能和过程适用于任何模型。在
>>>thm=dca.THM(qi=1000.0,Di=0.8,bi=2.0,bf=0.8,telf=30.0,bterm=0.03,tterm=10.0)>>>thm.rate(t)array([968.681,959.741,948.451,...,0.000])>>>thm.add_secondary(dca.PLYield(c=1200.0,m0=0.0,m=0.6,t0=180.0,min=None,max=20_000.0))>>>thm.secondary.rate(t)array([1162.417,1151.690,1138.141,...,0.000])>>>ple=dca.PLE(qi=1000.0,Di=0.1,Dinf=0.00001,n=0.5)>>>ple.rate(t)array([904.828,892.092,877.768,...,0.000])>>>ple.add_secondary(dca.PLYield(c=1200.0,m0=0.0,m=0.6,t0=180.0,min=None,max=20_000.0))>>>ple.secondary.rate(t)array([1085.794,1070.510,1053.322,...,0.000])
应用上述方法,我们可以根据一个数据集轻松地评估每个模型。在
>>>importmatplotlib.pyplotasplt>>>fig=plt.figure()>>>ax1=fig.add_subplot(121)>>>ax2=fig.add_subplot(122)>>>ax1.plot(t_data,rate_data,'o')>>>ax2.plot(t_data,cum_data,'o')>>>ax1.plot(t,thm.rate(t))>>>ax2.plot(t,thm.cum(t)*cum_data[-1]/thm.cum(t_data[-1]))# normalization>>>ax1.plot(t,ple.rate(t))>>>ax2.plot(t,ple.cum(t)*cum_data[-1]/ple.cum(t_data[-1]))# normalization>>>...>>>plt.show()
请参阅API documentation以获得完整的列表、详细的使用示例和模型比较。在
发展
petbox-dca由davids.Fulford(@dsfulf)维护。如有任何问题或建议,请在此回购中发布问题或拉单请求!在
版本历史记录
1.0.6
- 新功能
- 添加了WaterPhase类
- 添加了WaterPhase.wor方法
- 添加了PrimaryPhase.add_water方法
- 其他更改
- yield模型可以同时继承SecondaryPhase和WaterPhase,并在附加到PrimaryPhase时删除各自的方法。在
1.0.5
- 新功能
- Bourdet算法
- 其他更改
- 更新docstrings
- 将bourdet数据导数添加到详细的使用示例中
1.0.4
- 修复文档中的打字错误
1.0.3
- 添加文档
- 通用数值积分
- 各种重构
0.0.1-1.0.2
- 内部释放
- 项目
标签: