当前位置:主页 > 商业资讯 >

OpenFOAM入门心得_环球消息

发布时间: 2023-04-18 16:47:06 来源:软服之家

OpenFOAM是什么?


(资料图)

OpenFOAM 是一款基于有限体积法的开源场操作软件,其全称为Open Field Operation and Munipilation,前身为FOAM,初始类来自于Charlie Hill(1993)的博士论文,数值工作来自于1993 年Henry Weller 和Hrvoje Jasak。核心为一系列的高效C++模块数据包,基于此类数据包可以构建编写各类有效的求解器、前后处理工具(如网格划分、边界设定等等)和库文件(用于各种模型子模块定义)等,以此模拟特定的物理问题并进行前后数据处理。现阶段,该平台主要应用于流体力学中,已逐步在固体力学中得到应用,包括流固耦合、接触弹塑性、非线性结构分析等。

入门学习

OpenFOAM涉及到的方面较多(LINUX系统操作、C++语言编程、计算流体力学、有限体积法还有模拟对象本身的理论推导),分清主次是很重要的

首先是LINUX系统,入门的话不需要特别花时间去学LINUX,因为目的性不强,你也不知道要具体掌握什么。对于整个学习过程中遇到什么问题在对应去解决他可能会更好。而你需要会的是拥有一个LINUX操作平台。

安装LINUX系统有下面几种选择: (1)Windows系统+LINUX虚拟机; (2)LINUX系统+Windows虚拟机; (3)两台电脑:Windows一台+LINUX一台。 新手用(1),非常方便,而且可以实现文件的直接传输。

其次是关于C++语言,由于OF是一个工具包,因此自定义了大量的类与对象,即便你精通C++如果不翻阅工具书也一样不知道它们是拿来干嘛,个人感觉既然是入门,懂得C++基本语句与语法即可,只要能读懂代码其实就行了。OF既然是开源,所以读懂代码是关键,后面到了自己写代码的时候也可以模仿。

关于CFD与有限体积法,首先,如果你只是使用已有的求解器,算算案例,并不需要太掌握机理部分,但是如果已有求解器已经无法满足需求,需要自行开发,那么就需要了解CFD的求解过程以及有限体积法。

CFD的学习也是个过程,只有不断的试错中才能掌握一些经验,比如求解器中的时间、空间与方程离散,还有前处理中网格的划分以及参数的选取,都需要不断的积累经验。当然,对于CFD的学习并非得NS方程学起,更重要的数值思想。具体方程不一定要去学。

OpenFOAM的安装与运行(以Ubuntu 14.04为例)

这边主要介绍编译安装法,具体安装步骤如下:

(1)进入官网选择对应系统版本的编译包,点击进入相应的页面会有相应的安装与解压代码。

对于我安装的版本(OF-5.0),打开终端(Ctrl+Alt+T或在桌面右键),输入:

wget -O – http://dl.openfoam.org/source/5-0 | tar xvz

wget -O – http://dl.openfoam.org/third-party/5-0 | tar xvz

注:Linux wget命令即为从网上下载文件。

(2)完成下载和解压后需要修改文件名,将解压的文件夹分别命名为 OpenFOAM-5.0和 ThirdParty-5.0。可以采用窗口可视化操作,也可以采用命令行形式,即

mv OpenFOAM-5.x-version-5.0 OpenFOAM-5.0

mv ThirdParty-5.x-version-5.0 ThirdParty-5.0

注:Linux mv(英文全拼:move file)命令用来为文件或目录改名、或将文件或目录移入其它位置。mv source_file(文件) dest_file(文件)即将源文件名 source_file 改为目标文件名 dest_file。

(3)安装编译需要的基础包,分别在终端输入下面代码:

sudo apt-get install build-essential flex bison git-core cmake zlib1g-dev libboost-system-dev libboost-thread-dev libopenmpi-dev openmpi-bin gnuplot libreadline-dev libncurses-dev libxt-dev

sudo apt-get install libqt5x11extras5-dev libxt-dev qt5-default qttools5-dev curl

注:Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。

键入后会要求输入密码。此时密码不会显示,怕输入错回车重来即可。回车后,会提示是否安装这些库,键入 y 后进行安装即可。

(4)环境变量设置

首先打开隐藏文件显示(见图),找到bashrc文件,双击打开,并在该文件的最后一行补充如下代码:

source $HOME/OpenFOAM/OpenFOAM-5/etc/bashrc

该操作的目的是让系统识别你接下去的操作都是基于这个库进行的

./Allwmake

注:./在OpenFOAM表示执行脚本操作。

(6)编译OpenFOAM,切换到OpenFOAM-5.0目录下,打开终端,输入:

./Allwmake此时开始终端会出现大量代码,开始编译,等待编译结束即可

对于OF的运行,核心其实和商业数值软件的数值模拟过程类似:前处理-求解-后处理。不过OF需要通过命令执行,不再是Windows下的可视化操作。这里建议通过用户指南第二章给出的tutorial自己操作一遍,熟悉下网格生成,边界设定,求解器,案例运行以及后处理整个过程。经过这个阶段你会发现一些经验,对以后的理论学习很有帮助。后面对于一些具体需求时,可以进行求解器编写、一些工具的应用等等,更具目的性。这里简单说下OF案例文件的基本结构:

以不可压缩流(imcompressible)里面的icoFoam求解器提供的方腔流案例为例子,一个案例文件夹包含0文件夹(用于输入初始条件、初始场)、constan文件夹(参数赋值和网格划分)、system文件夹(主要用于设置求解算法的参数。 至少包含三个文件: DictcontrolDict : 用于控制求解开始/终止时间,步长以及输出数据参时间;fvSchemes包含各种离散格式 ;fvSolution包含矩阵求解器设置 、残差等)

标签:

为您推荐

  • 最新资讯
  • 热门资讯
财经