我正在尝试使用有限元和 Newton Raphson 解决方案来解决多物理场问题。我有两个双向耦合的非线性子系统。
第一个子系统包括我求解的方程:
的指数为 3 ,这个方程变得非常非线性!是体力,是我要解决的第二个子系统的解决方案。第二个子系统包括依赖于梯度的斯托克斯方程。因此,两个系统都是双向耦合的。
我为每个子系统使用 Newton-Raphson 解决方案。首先,我求解。收敛后,我将此解决方案传递给第二个子系统,我也使用 Newton Raphson 方案对其进行求解。然后,解决方案被传递给第一个子系统......直到两个子系统的解决方案不再改变。请参见下面的流程图。
到目前为止,此过程运行良好。但是,如果参数的梯度变得非常非常低),则不再收敛!原因似乎是两个子系统之间的耦合变得非常强。一个子系统的微小变化会在另一个子系统中产生显着变化(尤其是在的梯度非常低的情况下)。我尝试了各种好的初始条件,但是,由于第一个子系统的反应非常敏感,到目前为止收敛是不可能的。
在下图中,您可以看到这种方法的解决方案(“隔离方法”-蓝线)与“真正的”解决方案(“全耦合”-红线)有何不同。“真正的解决方案”是基准测试的结果,我通过求解一个包含两个子系统方程的方程组来计算它。
两种解决方案之间的最大差异位于的梯度变得非常小的地方。见下图(在此图中,和的值被归一化为 0 和 1 之间的范围):
那么:如果子系统中存在低梯度,Newton-Raphson 解决方案是否是解决强耦合系统的错误方法?我的方法可以修复以解决我描述的问题吗?如果是,如何?这个问题有替代的解决方案吗?