We propose and analyze a second-order partitioned time-stepping method for a two-phase flow problem in porous media. The algorithm is based on a refactorization of Cauchy's one-leg $\theta$-method. The main part consists of the implicit backward Euler method on $[t^n, t^{n+\theta}]$, while part two uses a linear extrapolation on $[t^{n+\theta},t^{n+1}]$ to obtain the solution at $t^{n+1}$, equivalent to the forward Euler method. In the backward Euler step, the decoupled equations are solved iteratively. We prove that the iterations converge linearly to the solution of the coupled problem, under some conditions on the data. When $\theta = 1/2$, the algorithm is equivalent to the symplectic midpoint method. In the absence of the chain rule for time-discrete setting, we approximate the change in the free energy by the product of a second-order accurate discrete gradient (chemical potential) and the one-step increment of the state variables. Similar to the continuous case, we also prove a discrete Gibbs free energy balance equation, without numerical dissipation. In the numerical tests we compare this implicit midpoint method with the classic backward Euler method, and two implicit-explicit time-lagging schemes. The midpoint method outperforms the other schemes in terms of rates of convergence, long-time behavior and energy approximation, for small and large values of the time step.
翻译:本文针对多孔介质中的两相流问题,提出并分析了一种二阶分区时间步进方法。该算法基于柯西单步θ法的重构。其主要部分采用隐式后向欧拉方法在区间$[t^n, t^{n+\theta}]$上求解,第二部分则通过线性外推方法在区间$[t^{n+\theta},t^{n+1}]$上获取$t^{n+1}$时刻的解,与前向欧拉方法等效。在后向欧拉步中,采用迭代方式求解解耦方程。我们证明,在数据满足一定条件下,该迭代过程可线性收敛至耦合问题的解。当$\theta = 1/2$时,该算法等价于辛中点法。针对时间离散框架下缺乏链式法则的问题,我们通过二阶精确离散梯度(化学势)与状态变量单步增量的乘积来近似自由能变化。类似于连续情形,我们同时证明了无数值耗散的离散吉布斯自由能平衡方程。在数值试验中,我们将该隐式中点法与经典后向欧拉法及两种隐式-显式时间延迟方案进行了比较。结果表明,无论时间步长大小,中点法在收敛速度、长期行为及能量近似方面均优于其他方案。