由于下述原因可能导致收敛失败:
- 内部迭代收敛失败
- 牛顿迭代失败导致步长截断
- 物质平衡误差
如果你在output文件中经常查看到”iteration routine fails to converge” ,可尝试下述方法:
- 采用较小的时间步长。采用*DTMAX 设定较小的最大时间步长或者采用*NORM *PRESS 和/或*NORM *SATUR来降低每个时间步的参数变量的改变范围;
- 采用关键字 *ITERMAX增加指定的迭代次数;
- 采用*SDEGREE增加分解度。请注意这些措施会增加储存空间。
如果时间步长截断(CUT)大量发生,尝试下述方法:
- 检查相渗曲线和PVT数曲线,确保曲线是光滑的
- 检查网格和其他属性是否有异常点
- 检查井的约束条件,应对每口注入井指定最大井底压力,对每口生产井指定最小井底压力
- 采用关键字*NEWTONCYC 增加指定的牛顿周期数,这个方法适用于超过牛顿迭代最大数导致的不收敛。
设定油藏的某些区域或者整个油藏为全隐式求解。这种方法适用于:
- 当不采用垂直平衡初始化时。这种初始化方法会导致初始压力和饱和度改变较大,即便是关闭所有井。当这种情况发生时采用全隐式。
- 当存在气顶时。
- 当某些网格渗透率异常高时。较小的压力改变会导致这些网格饱和度剧烈变化。应将这些区域的网格设定为全隐式求解。对渗透率较高的区域压力收敛误差推荐使用1 kPa 。
如果找不到原因,可以输出不收敛信息,操作步骤为:
Builder → I/O Control → Text output → Iteration TSS + details of unconverged variables →保存文件→ 再计算一次 → 查看OUT文件的诊断信息。
从2019版开始,3个模拟器都可以用人工智能技术来调整时间步长了,关键字AUTOTUNE ON,可以试试。有的模型不光收敛性问题能解决,提速也非常明显。
CMG2019版本AUTOTUNE ON在哪里
CMG2019版本AUTOTUNE ON在哪里