我有一个小型二维系统,我正在尝试使用达西定律的非线性扩展来模拟多孔介质中的流体流动。我主要对局部流速感兴趣,不一定是压力,稍后在我正在研究的真实模型中使用:
地下水建模中使用的称为达西定律的原始方程本质上是泊松方程,其中是流体速度,和是共同描述多孔介质的水力传导率的常数,是局部静水压头,f 是源:
我想求解的非线性方程如下,称为达西-福希默定律。正如你所看到的,它本质上是一个多项式,而不是像达西定律这样的线性模型:
我找到了一些经过微积分并找到了表示方法的作者 [1]作为一个函数通过计算流量/压力方程的倒数,我看到了他们是如何得出他们的方法的,但我感兴趣的是实际上计算通量() 本身,我在我正在开发的模型的其他地方使用它 - 我没有太多用处除了在初始问题设置中使用一些简单的 Dirichlet 边界条件。
有点相关,我还读到对于某些数值方法(例如 DG FEM),由于非定向通量,扩散主导的问题可能非常不稳定。在本文 [2] 中,作者研究了一些“方程分裂”方法,他们求解一个方程用于状态变量,另一个方程用于通量,基本上是我上面展示的前两个方程。这显然缓解了一些由扩散引起的不稳定性问题
看着这两个,看起来我有两个选择:
- 使用[1]的方法计算整个系统的压力,然后计算静水压头的梯度以生成局部速度,或者...
- 将我的方程分成两个方程并一起求解。我最终一次解决了两个方程,但无论如何我都需要有速度,这样看起来还不错。除此之外,我对这种方法一无所知。
我不知道如何实现方程拆分方法,因为我以前从未做过,所以我有两个问题:
- 这甚至是个好主意吗?除了将要求解的状态方程数量加倍之外,将方程拆分为方程数量是否不利?
- 是否有一个来源可以用于(最好)有限元或有限差分方法的方程拆分的实际实现。我被我遇到的任何 DG 理论彻底吓倒了,我希望有一种更简单的方法来解决这个问题
[1] https://arxiv.org/pdf/1508.00294.pdf
[2] https://www.cs.utah.edu/~kirby/Publications/Kirby-11.pdf