我需要开发一个代码来解决三次几何(结构化网格,均匀网格间距)中的 3D 斯托克斯方程。
我的代码需要在一个方向上采用压力梯度作为 BC(pinlet=p1,poutlet=p0),并且在立方几何的其他 4 个面中采用无滑动 BC。
我开始用 Python 开发这段代码,使用交错网格 FV 方法;FV 单元中心的压力,垂直于 x 方向的面的 ux 速度等。
我的代码给出了奇怪的结果,这让我想知道我是否正在考虑解决此类系统的正确方法。
我目前正在组装一个方程组,将 [p, ux, uy] 视为未知数并“一次性”解决它。也就是说,我建立一个矩阵并求解线性系统,这给了我解决方案。自由度通过斯托克斯方程和连续性方程耦合,但耦合是通过将系数组合到矩阵来“解决”的。
但是,每当我研究有关 Navier-Stokes 方程的数值代码和书籍时,它们通常会提供一些策略来处理压力-速度耦合,通常是“猜测和纠正”方法,您可以在其中猜测压力场,然后迭代地纠正它满足连续性(例如 SIMPLE、SIMPLEC、PISO)。这些方法通常在 Navier-Stokes 上下文中制定,但 Stokes 方程具有相同类型的压力-速度耦合;他们只是没有非线性惯性项。所以我假设这些策略也适用于斯托克斯方程。
所以我向社区提出的问题是:我通过求解一个线性系统来一次性求解斯托克斯方程的方法是否存在“错误”?还是我需要考虑迭代方法来处理压力-速度耦合?
谢谢!拉斐尔三月。