发明名称 基于逆向自动微分的油藏动态模拟方法
摘要 本发明公开了一种基于逆向自动微分的油藏动态模拟方法,属于油藏数值模拟领域。该方法利用逆向自动微分实现油藏方程组的线性化。与现有的油藏模拟方法相比,本发明在线性化方程组的时候,使用自动微分代替手动求导,减轻了程序开发的难度,避免了机械的人力劳动;且提高了自动微分的效率。本发明采用逆向自动微分,其浮点计算量不随自变量个数增加而线性增加,比正向模式更适合于油藏方程的线性化。针对在运行期形式不变的表达式,本发明还利用了C++模板技术实现逆向自动微分,运行速度高于已有的基于运行时多态的逆向自动微分。
申请公布号 CN103279685A 申请公布日期 2013.09.04
申请号 CN201310242744.X 申请日期 2013.06.19
申请人 北京大学 发明人 李想;张东晓
分类号 G06F19/00(2011.01)I 主分类号 G06F19/00(2011.01)I
代理机构 北京万象新悦知识产权代理事务所(普通合伙) 11360 代理人 贾晓玲
主权项 一种基于逆向自动微分的油藏动态模拟方法,具体步骤包括:A.根据具体油藏问题建立方程组,包括质量守恒方程和约束方程,使用有限差分方法对方程离散;B.根据观测数据选取参数,然后将上一时刻的状态设定为初始状态,如果当前时刻是第零时刻,则使用能满足重力平衡的状态作为初始状态,从初始状态开始,用牛顿法寻找当前时刻的解;C.线性化方程组,得到Jacobian矩阵和余误差向量,使用逆向自动微分为表达式赋值并同时求导;D.用约束方程的Jacobian矩阵消去首要方程的Jacobian矩阵中对次要变量的导数,得到只关于首要变量的线性方程组,求解此方程组,更新首要变量,再代入约束方程中更新次级变量;E.将更新后的首要变量和次要变量作为下一个牛顿步的状态,重复步骤C至D,直到质量守恒方程各分量的相对质量误差小于规定值,则此牛顿步的状态就是方程组在当前时刻的解;F.选取合适的时间步长,将当前时刻的解作为下一时刻的初始状态,重复步骤B至E,直到时间步数达到预定时间步数,完成油藏动态模拟。
地址 100871 北京市海淀区颐和园路5号