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