复杂几何形状的 FEniCS CFD 工作流程

计算科学 芬尼克斯
2021-11-24 20:28:20

我有 COMSOL 和其中的 CFD 软件包,它为我提供了解决 CFD 问题的一体化解决方案。我已经建模并解决了下图中显示的几何图形,这花了我大约一个小时。

现在(只是为了好玩)我想在 FEniCS 中做同样的事情,看看效果如何。在这一点上,我正在尝试建立一个最佳的工作流程。

我目前的做法是这样的:

  1. 在gmsh中创建几何图形
  2. 在 gmsh 中创建网格
  3. 使用dolfin-convert mesh_file.msh mesh_file.xml 将网格导入dolfin
  4. 在 dolfin 中设置边界条件
  5. 求解纳维斯托克斯方程
  6. ParaView 中的后处理

我开始这样做之前,我想知道这个工作流程是否是个好主意?!

我看到的可能问题是根据这个launchpad post从 dolfin 中导入的 gmsh 网格设置边界条件。即在 gmsh 或 dolfin 中定义边界条件更好吗?

在此处输入图像描述

在此处输入图像描述

1个回答

我已经使用这个精确的工作流程来求解 FEniCS 中的 Navier-Stokes 方程。

几乎可以肯定,该过程中最困难的部分将是实施数值求解方法;FEniCS 中没有开箱即用的支持(当然,您需要的所有差分运算符都可用)。作为参考,请查看为FEniCS编写的 Navier-Stokes 基准测试套件 nsbench。它具有一组常见的数值求解方法,并针对许多示例问题对其进行了测试。另请查看FEniCS 书,第 21 章。根据您要模拟的流动的雷诺数,您可能需要使用例如SUPG来稳定数值解。

与 COMSOL 相比,使用 FEniCS 完成任务肯定需要更好地理解 Navier-Stokes 方程、数值求解方法和适当的边界条件。

至于边界条件的规范,我认为dolfin-convert仍然没有将标签信息从 Gmsh 网格传递到 dolfin 格式。如果您的域不是太复杂,手动重新标记 FEniCS 中的边界应该是可行的。