有哪些方法可以使用笛卡尔网格上的有限差分来求解通过圆柱体的流体流动?

计算科学 有限差分 流体动力学 参考请求
2021-12-16 06:46:49

我对不可压缩 Navier-Stokes 方程的有限差分方法感兴趣,这种方法可以在不使用非结构化网格或非笛卡尔网格的情况下处理复杂的几何形状。需要明确的是,我知道标准方法,例如Chorin 的投影方法,在矩形域上求解 Navier-Stokes 方程,但我想更多地了解存在哪些方法可以将这些技术扩展到更多复杂的几何形状。

为了澄清我的意图,我正在寻找的一个特别值得注意的例子是Peskin 的沉浸式边界方法

有关我感兴趣的特定问题的更准确陈述,请参见下文。


考虑求解不可压缩的 Navier-Stokes 方程 with 在域其中 边界条件是无滑移(即),除了在处,我们强制执行周期性边界条件。换句话说,这是围绕圆柱体的周期性泊肃叶流。

ρ(ut+(u)u)=p+μΔu+fu=0
f=(f0,0,0)
Ω=[1,1]dC
C={x[1,1]d:|x|<12}.
u=0{x=1}{x=1}

这里的挑战完全在于在圆柱边界上强制执行无滑移条件。一种幼稚且不准确的方法是在每个时间步长的圆柱体内部的网格点处浸没边界法是另一种选择。简而言之,还有哪些其他技术?Cu=0

4个回答

您是否有不想在广义坐标中实现 FDM 求解器的原因?即使您使用 IBM,将 NS 方程置于广义坐标系中仍然是一个好主意。假设您有一个“S 形”几何形状,将域设置为两条曲线而不是一个盒子不是更好吗(就网格大小而言)?有关广义坐标的文档可在 Steger, JL (1978) AIAA J. 16, 679-686 的论文中找到

在上个学期,我忙着为一个工程项目所需的模拟编写一些 CFD 代码。我偶然发现了一些可以处理复杂几何并且仍然保持相当简单的方法,例如有限差分近似。您应该寻找以下内容:

  • 广义有限差分(也可以看看其中的最小二乘方法)
  • 解插值的径向基函数

在标题中,您询问有关在笛卡尔网格上解决流过圆柱体的问题,但随后在问题中您谈到了似乎是非结构化网格的内容。如果你想在非结构化网格上做有限差分,你应该看看 Discrete Exterior Calculus,有一个名为PyDEC的 Python 库可能对你有用。

在 OP 提出这个问题后很长一段时间我都来了,但我认为仍然缺少一般性的答案。

如果您的代码允许您与获得的线性问题进行交互,那么最简单的方法是删除与圆柱体中的节点对应的行和列。然后,您只求解速度的未知部分,您需要将输出重新排列为笛卡尔网格的编号。这就是在 FEM 软件 rheolef 中执行 Dirichlet 边界条件的方法,请参阅http://www-ljk.imag.fr/membres/Pierre.Saramito/rheolef/(手册的第一个示例),它也适用于FDM。但是你的线性求解器当然不能太专业。

另一种方法是为圆柱体中的每个节点设置一个拉格朗日乘数:您的约束是vi,j,k=0为了xi,j,kC, 所以你只需添加 0 的行和列1在相关位置为i,j,k(例如kNY(jNX+i)) 到原来的问题。如果您的求解器无法解决这个新的完整问题,您可以使用 Uzawa 算法通过初始问题的迭代和拉格朗日乘数的更新来求解。参见 Fortin 和 Glowinski 1983,增强拉格朗日方法