比较CFD软件-第2部分:开源CFD软件包

差价合约彩条

这是我们5中的第2部分 差价合约软件比较系列。如果您想在收件箱中收到更新,请注册我们的 时事通讯在这里.

开源CFD软件包-足够好,而且免费

使用开源软件有很多优点。除了免费使用和分发外,开源软件还向用户提供了按需修改源代码的许可。在某些情况下,存在支持用户学习和代码开发的在线用户社区。

开源CFD求解器没有什么不同。一些最常见的包括 OpenFOAM, SU2, 帕拉波斯, 消防动态模拟器MFIX。到目前为止,OpenFOAM的使用最为广泛,并将成为本次讨论的重点。

近年来,通过不断增长的用户群进行的验证和确认研究,OpenFOAM(OF)已获得相当可观的信誉。越来越多的大学和公司也独立或与其他商业法规一起使用OF。浏览上一个议程 OF用户会议 有人看到梅赛德斯·奔驰,巴斯夫,宝马,大众汽车和英特尔等公司都参与其中。这不足为奇,因为具有如此大的固有仿真工作量的大型公司将从免费软件许可中受益最大。

自由?检查一下准确?检查一下可定制的?检查一下适用于多种类型的流体问题?检查一下那么,有什么收获呢?

OpenFOAM背景

OpenFOAM,最初简称为“ FOAM”,是基于有限量的数值算法的一揽子程序,该算法最初由Henry Weller的CFD小组于1989年在伦敦帝国理工学院开发。 FOAM代表现场操作和操纵。 有意思的是,韦勒先生及其同事当时具有远见,可以利用C ++而不是更流行的工程编程语言FORTRAN来利用其面向对象的功能。好想法。 Weller及其同事创立后,OpenFOAM就被开源了 OpenCFD有限公司。然后被Silicon Graphics International(SGI)和后来的ESI收购。 同时,OpenFOAM版权已转让给 OpenFOAM基金会有限公司

这两个组织都提供与OpenFOAM相关的软件包和教程下载。 两者的代码库是相同的。 软件发布周期与软件版本的“编号”有所不同。 因此,您可能会发现一个版本或另一个版本具有(或没有)您要查找的功能之一。 基金会通常每年发行一次或两次版本,发行编号如4.0、5.0、6.0(当前版本)。 OpenCFD具有相似的发布时间表,但版本编号不同,并且基于发布的年份和月份以防止混淆(当前版本为v1806或2018年6月)。 

Linux和Windows版本

OF本身是基于Linux的程序,这意味着您将需要使用基于Linux的操作系统,例如Ubuntu,Fedora或Redhat Linux Enterprise,或者您将需要通过Windows中的虚拟机运行OF。 不用说,使用OF时,Linux的某些知识或背景会派上用场。 

微软最近实现了在Windows 10中将Linux Bash Shell作为应用程序运行的功能,从而迈出了扩大OF用户基础的关键一步。 安装此应用程序后,Windows用户可以直接从Windows桌面通过该应用程序下载,安装和运行本机OF。 有关此方法的更多信息,请参见 这里.

在此之前,想要运行OF的Windows用户需要“双重启动”其PC并在启动时运行Ubuntu。 这需要对硬盘驱动器进行分区,以便Windows和Ubuntu文件存储系统分开。 幸运的是,使用Windows Linux Bash Shell,您可以直接从Windows内部访问OF文件,并通过您喜欢的Windows文本编辑器对其进行编辑。

OpenCFD还发布了 Windows OpenFOAM的“容器化”版本. 该版本通过Docker技术在Linux环境之外运行,该技术将源代码容器化为Windows 7、8或10可以运行的应用程序。 

安装后,初次使用的用户可能会惊讶地发现,他们实际获得的是一个包含大量文本文件的目录结构(称为 词典 要么 字典). 那些希望使用标准GUI来指导工作流从模型设置和网格划分到运行模拟到后处理的人,应该去找别的地方。 也许看一看OF包装器,例如那些 这里. 相反,用户通过自己选择的文本编辑器与OF进行交互,并通过Linux命令行中的可执行文件启动进程。 

工作流程和物理能力

尽管有些令人生畏,但建立一个 简单的问题 如果您可以找到一个与您的问题类似的设置的教程,那么它并不是那么困难,并且变得更容易。 库中提供了很多教程,希望其中一个适合您。 典型的工作流程是接下来将教程目录复制到项目的本地工作文件夹中。 这使您可以在本地项目文件夹中修改网格,边界条件,流体特性等,而不会对原始下载包造成任何风险。

OpenFOAM可以立即使用很多功能。 它可以解决瞬态或稳态流,湍流或层流,牛顿或非牛顿流体,多相流(拉格朗日粒子和欧拉/ VOF),反应流和被动标量等问题。 尽管不需要使用C ++编程技能来使用这些功能,但它们确实降低了难度。 通常,每个内置求解器都是为特定类型的问题量身定制的。 这意味着您将需要知道 先验 您的应用程序中存在哪种物理类型,以及哪种类型的基于有限体积的数值算法最适合解决所述物理问题。 下面列出了一些较常见的求解器及其相关的物理学的简要列表。

 
我们已为模拟测试的本机求解器的简要列表
 

在这种环境中分配合适的求解器设置是成功进行仿真的关键所在,即使对于最有经验的CFD工程师而言也可能是一个挑战。 

所有这些可能有点令人生畏,但每个目录都可以视为组织存储桶,存储桶中的每个“字典”文件也不会过于复杂。 通常,一旦您已根据自己的喜好配置了典型的求解器设置,则只需要针对每种情况修改流体属性和入口/出口边界条件。 这对于重复解决相同类型问题的用户非常方便,这些问题可以重复使用整个案例/项目目录结构,而无需更改网格以外的任何内容。 

网格划分

缺乏易于使用且功能强大的内置网格划分实用程序目前是所有开源CFD程序(包括OF)的绊脚石。  内置的网格实用程序, blockMesh, 对于基本几何形状(例如矩形风管)可以通过,但对于更复杂的事物几乎没有用。 附加实用程序, snappyHexMesh可以读取STL格式的表面几何文件作为要在虚拟风洞中测试的物体。  进行细化和清理才能达到良好的网格效果。该过程是费力且耗时的,特别是对于具有小特征的复杂情况。 没有包含可以在内部流动问题上实现网格的实用程序,在典型的3D实体建模环境中创建几何时,无法对内部流动问题进行网格化。

但是,OF确实包含几个转换器实用程序,这些实用程序会将来自其他软件包的网格转换为所需的网格文件结构。 对我们来说,这是将高质量网格物体放入OF的最简单,最快的方法。 但是,它需要访问第三方网格生成软件。 著名的内置转换器包括 ccmToFoam流畅的网状泡沫,显然可以转换 西门子的STAR-CCM +ANSYS流利 网格化为OF格式。 其他常见的网格划分工具,例如 逐点sh 能够直接导出为OpenFOAM网格文件格式。还建议在运行这些实用程序后,检查生成的网格,以确保转换成功。 OpenCFD中讨论了更多选项 文件资料。但是,我们应该注意,在使用内置转换器从商用软件网格转换后,我们遇到了无法解释的求解器稳定性问题。

解决和后处理

一旦拥有了网格化的几何体,并且可以使用物理模型和求解器设置,就可以导航到案例目录并键入solver关键字,例如 简单泡沫 进入命令行终端。  That’s it.  您的情况应该正在运行。 运行求解器时,您可能会在命令行/终端窗口中看到每次迭代的残差。 或者,您也可以将它们写入日志文件。 

OF的一项特殊优势在于,它可以“分解”您的问题并在多个处理器上甚至在网络上的多个CPU节点上并行运行。  With OF, a 分解ParDict 文件必须在 系统 目录。  该文件允许用户指定将使用多少个处理器以及如何将域分配给每个处理核心。 字典准备好后,将调用“ decomposePar”例程并将模型分解为指定的分区。 模拟完成后,用户必须在后处理之前调用“重组”例程。 尽管这些例程确实需要时间,但是通过并行化可以大大减少大型问题的仿真时间。 

泡沫监控器交互式OpenFOAM模拟残差图示例

OF的新版本添加了一个名为 泡沫监控器 通过启动作业后,在终端中键入第二个命令,可以交互地绘制守恒方程残差,以进行交互绘制。 要使其正常工作,还需要其他一些设置步骤,但是一旦工作,它就会表现良好。 不幸的是,由于Ubuntu bash无法显示该图,因此在Windows 10中将无法使用。 

通常,我们发现OF解算器很健壮。 对于顽固的问题,调整众多解算器设置(例如松弛因子,离散化阶数和时间前进方案)的能力始终可以提供帮助。   

OpenFOAM随附了一个称为的开源后处理软件 ParaView. ParaView功能包括大多数标准科学可视化效果,例如轮廓图,矢量图,流线和线图。可以实现沿线和点的数据提取。在时间步结果之间轻松切换可以创建动画。 下面显示了基于Ahmed Body参考问题的ParaView生成的流线示例。 应该注意的是,ParaView提供了免费的独立Windows版本,实际上是我们使用的版本。 或者,用户可以将OF结果导出到第三方商业软件,例如 远见卓识 要么 视场 (需要许可证)以对您选择的软件包中的模型结果进行后处理。

 
OpenFOAM Ahmed身体问题模拟结果-在ParaView中可视化的速度轮廓平面和流线

OpenFOAM Ahmed身体问题模拟结果-在ParaView中可视化的速度轮廓平面和流线

 

结论

OpenFOAM是用于计算流体动力学的出色工具。 以下是其明显的优势:

  • 大量的功能和多个求解器可以应用于多种类型的流动问题

  • 过去二十年来(至少)由专门解决计算流体动力学问题的人员开发和改进的产品

  • 开源软件的许多典型优势,例如广泛的用户基础,在线教程和示例问题,以及根据您的喜好自定义代码库的能力

  • 在学术界和工业界的接受度不断提高

  • 不花钱!

但是存在一些缺点,可能使其无法普及/成为主流,其中包括:

  • 陡峭的学习曲线,加上在确定要解决的重要物理以及如何将这些物理与数值算法最匹配方面需要一定的高级用户专业知识

  • 需要基于Linux的操作系统或Windows的OF版本,该版本可能具有或不具有所有本机OF功能/实用程序(例如,绘制交互式残差)。 了解一些用于文件操作的基本Linux命令非常有帮助。

  • 缺乏高性能的内置网格划分工具

  • 需要学习额外的后处理软件包 

  • 与工作流程优化的商业软件解决方案相比,由于具有不连续的工作流程,因此需要额外的时间来设置和分析模型结果,而商业化软件解决方案具有预处理,求解,后处理的多合一软件包。这也许是最大的交易突破 差价合约顾问 如我们自己。

如果您有兴趣了解更多信息,我们强烈建议由德克萨斯大学A的Mark Kimber教授针对OpenFOAM进行分两部分的教程&M嵌入下面。如果您正在寻找可以帮助您解决OpenFOAM故障排除,培训或模拟的顾问, 联系我们,我们将为您提供所需水平的支持。如果您在英国或附近,并且需要当地人,则可以通过以下方式与Robin Knowles联系: 差价合约引擎 求助。

</iframe>" data-provider-name="">
</iframe>" data-provider-name="YouTube">
差价合约彩条