二维固定 Navier Stokes 方程的开源代码

计算科学 流体动力学 纳维斯托克斯 开源的
2021-12-24 14:07:13

可以推荐什么开源工具来求解 2D 固定 Navier Stokes 方程(在简单的几何形状中,但具有高雷诺数)?我发现的大多数包裹,我都不是很幸运。OpenFOAM 似乎很强大,但我认为学习使用它需要一些时间。FEniCS 有一个 Navier Stokes 演示,但仅适用于固定案例,我不确定它是否适用于大雷诺数。还有其他好的选择吗?在最好的情况下,我不想编写新代码,而只是提供初始时间步长的几何、边界条件和数据。

4个回答

在回答您的问题之前,我只想澄清一个关键点:求解 PDE,例如 Navier Stokes 方程,需要一个两步过程:

  1. 几何离散化(网格化)

  2. 线性方程组的解

通常这是通过两个单独的程序完成的。网格划分本身可能是一项非常昂贵的操作,应根据用户的精度要求仔细进行。有许多免费软件程序可以做到这一点。如果您的几何图形不太复杂,并且更喜欢使用 GUI 界面,我会推荐 NETGEN 或 GMSH(两者都可作为 Ubuntu 上的应用程序)。

求解器还需要超出基本边界和初始条件的大量用户输入。特别是对于 Navier Stokes 方程,您必须指定时间步长方案的类型和线性求解器的参数。这两者都会对您的解决方案的准确性产生重大影响。事实上,navier stokes 方程有很多很多不同的免费软件求解器。诀窍是找到一个可以输入网格数据类型的求解器。如果我没记错的话,我相信 NETGEN 和 GMSH 都可以生成可以导入 ELMER 的文件类型,ELMER 是 UBUNTU 上提供的免费有限元求解器。

当然,还有许多其他选择,而且可能比我在这里推荐的更好。但这应该可以让你开始。

OpenFOAM 内置了湍流模型,这很有帮助。我认为使用 OpenFOAM 作为黑盒求解器比修改其内部更容易(由于缺乏开发人员文档和 OpenFOAM 编码风格,我发现这非常困难)。如果您正在求解 Navier-Stokes 方程,OpenFOAM 中可能已经有一个求解器,在这种情况下,大部分工作将是导入几何图形和编写输入文件。这些步骤的文档很不错,所以如果你想使用有限体积的代码,OpenFOAM 可能是一个不错的选择。

如果这就是你所需要的,你可以看看FreeFem++有几个工作示例(参见手册,第 3.9 节中的简单示例,3.11 中的湍流),它非常易于使用,您可以轻松更改几何形状,而无需使用其他软件创建网格。

(但是,您必须坚持使用 2D,而且它不是真正的库)。

我会建议gerris对于简单的问题/配置,它没有非常陡峭的学习曲线,并且仍在积极开发中。它还具有自适应网格细化功能,您可以从 CAD 软件导入复杂的几何图形。对于更简单的几何形状,如盒子、圆柱体等,您可以直接在输入文件中定义它们。尝试从教程页面开始,您可能希望查看示例部分以了解更复杂的问题。它也以软件包形式出现在 debian 系统中,因此如果您使用的是 linux 系统,安装应该不是问题。