【实验课1】 OpenFOAM初印象

 

从数学的角度看,OpenFOAM其实只做了一件事——求偏微分方程(组)的数值解。...



大家好!我是每周五OpenFOAM版块的作者BH,很荣幸地在CFD小学这个平台上分享自己的学习体会。您也许知道OpenFOAM或者您会马上去搜索引擎里科普一下。这是一个开源的计算流体动力学的工具箱,正如它的名字“开放的场操作与处理”,OpenFOAM不仅在计算流体力学中有强大的应用背景,而且在其它连续的、或近似连续的”场“中也有广泛的用途,如固体的应力模拟、电磁场、分子动力学和金融领域的Black-Scholes定价模型等。

从数学的角度看,OpenFOAM其实只做了一件事——求偏微分方程(组)的数值解。大家知道,流体力学中涉及到许许多多的方程,但是在低速流动中它们具有统一的形式,如:




也就是我们常说的对流扩散方程。如何解这类方程(组)已经成为一个专门的研究领域,其中涉及到的重要问题有空间的离散、时间的离散、方程的离散等。这些问题内容非常繁多而复杂往往不易弄明白,幸运的是OpenFOAM已经把这些常规的问题一并处理并写成相应的库或头文件,这给流体力学的研究者提供了一个非常好的样板,方便人们在各自感兴趣的内容上下功夫。然而,对于我们初学者来说,搞清楚OpenFOAM的整体架构,是使用OpenFOAM进行流场数值模拟的应用和深入研究计算流的前提条件。

因此,本次课的内容是简单地探究OpenFOAM的“套路”。

一、编译的套路

(此处引自苏军伟博客http://blog.sina.com.cn/s/blog_5fdfa7e60100dciw.html)

OpenFOAM用的编译器是gcc,他并不是直接运用该编译器,而是将该编译器进行了包装,也就是wmake。OpenFOAM中的头文件通常为 H结尾,而代码文件是以C为扩展名,应当注意,这里的C为大写的,如果写成小写,wmake会出现编译错误,尽管你编写的代码没有错误。

运用wmake编译程序,程序所在的文件夹结构必须为如下形式

|—newApp

|—newApp.C

|—otherHeader.H

|—Make

|—files

|—options

Make所在的文件夹中放有主程序,和在主程序用到的所有头文件,这里面的代码文件和头文件名字任意。Make文件夹里面有两个文件files和options,这两个文件的名字不能改变。

files文件主要干两件事

(1)指定哪些文件需要编译,这里的文件是代码文件,也就是.C文件,而不包括.H文件

(2)指定你要编译的类型,是编译成库,还是编译成可执行文件,以及编译成的库文件或者可执行文件的名字。

options文件也是干两件事

(1)指定编译的头文件所在的目录,如果说所用的头文件在当前文件夹或者标准C++的头文件,无需指定。

(2)指定编译当前程序所用到的库。

示例:OpenFOAM版的”Hello world”

第1步:建立一个目录,用于编译当前的Hello world程序

下面为当根目录建立一个hello的文件夹,并进入hello文件夹。

cd

mkdir hello //建立文件夹,名为hello

cd hello

第2步: 建立Make文件夹,并进入Make建立files和options文件

mkdir Make

cd Make

touch files //创建files文件

touch options //创建options文件

cd ..

第3步:建立程序文件hello.C, 打开hello.C进行编程序

touch hello.C //创建hello.C

kate hello.C //打开hello.C

输入如下代码

#include"iostream"

using namespace std ;

int main ()

{

cout


    关注 CFD小学


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册