class dictionary; object fvSchemes; }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // //非稳态格式 ddtSchemes {
default Euler; //默认采用欧拉离散,其他格式以后介绍 }
gradSchemes //梯度离散 {
default Gauss linear;//梯度离散采用高斯方法,线性插值 grad(p) Gauss linear; //压力的梯度离散 }
divSchemes //散度离散 {
default none; //散度的离散(必须指定没有默认值) div(phi,U) Gauss linear;//对流项离散,高斯理论,采用线性插值 }
laplacianSchemes //拉普拉斯项离散 {
default none; //拉普拉斯项离散,必须指定
laplacian(nu,U) Gauss linear corrected; //扩散项离散采用高斯理论,采用线性插值,并带有非//网格正交修正
laplacian((1|A(U)),p) Gauss linear corrected;//压力方程离散采用高斯理论,线性插值,带有非//网格正交修正 }
interpolationSchemes //插值格式 {
default linear; //默认线性插值
interpolate(HbyA) linear;//线性插值 }
snGradSchemes//梯度发法向分量 {
default corrected;//默认带有非正交修正 }
fluxRequired //是否计算流律 {
default no; //默认不计算
p;//压力需要计算,因为需要利用压力流律修正速度 }
CFD计算:
设定上述参数后,直接在case文件中,在控制台中输入相应求解器的名字即可。如果参数设置有误,会得到提示。 后处理:
openfoam推荐的后处理软件为paraview,当然你可以运用foamToTecplot功能将其转换为tecplot格式运用tecplot进行处理,或者运用foamDataToFluent转化为fluent格式进行后处理,所有支持的转化在/OpenFOAM-1.5/applications/utilities/postProcessing/dataConversion文件夹中。
Windows下OpenFOAM开发及使用环境配置指南
OpenFOAM是一款优秀的开源CFD软件, 其实更应该称作是一个程序库, 用户可以在其平台上进行源码级开发. 目前OpenFOAM已经拥有大量的CFD求解器可供使用. 更重要的是, 它是完全免费的. 更更重要的是, 我们可以在其提供的CFD类库(网格, 场, 离散算法)基础上任意进行二次开发, 从而配置出适用于自己的CFD程序. 更更更重要的是, 我们可以在不违背 GPL协议的前提下任意分发软件, 不存在使用其他盗版商业软件的违法问题(虽然这每时每刻都在发生, 也许你的 Windows就是盗版...). Anyway, 无论从哪个角度来讲, OpenFOAM都是 \的. 尤其对于科学研究来讲, OpenFOAM 非常适合开发CFD模型,在面向对象的设计体系下, 代码重用和模型扩充会为你的科研积累增色不少.
OpenFOAM 的开发源于Linux, 这对只熟悉Windows的用户来说是个噩耗, 尤其在中国更多的人习惯于使用 Windows. 作为研究人员, 可以花上几个星期去钻研Linux, 从而适应在Linux下的
OpenFOAM开发及使用. 然而如果你把自己的程序交付给别人使用时, 让他在早已习惯于Windows的情况下去重新学习另一个操作系统, 恐怕还是太费劲儿了点儿. 即便是自己研究之用, 有时一些前后处理软件我们已经习惯了使用Windows版本, 在不同系统之间切换还是一件烦人的事情(有朝一日在学界TeX取代了MS Word时或许就不用切换了).
另外更多的情况是, 你的实验室里大多数机器跑的都是Windows, 如果你要把OpenFOAM程序放到上面运行, 那麻烦也来了...总而言之, 我们还需要一个Windows版本的OpenFOAM.
一些人在这方面做了工作. 早在OpenFOAM还处于1.2版本时, 便有人将其通过Cygwin移植到Windows下. 到今天发展到1.7版本, 虽然断断续续, 但总有人在做. Cygwin是Windows下的模拟Linux环境, 可以进行程序开发, 但得到的程序需要依赖于Cygwin环境运行, 当然也可以脱离Cygwin环境, 将程序(exe, dll)打包然后移植到其他计算机上,但必须带上cygwin1.dll, 因为程序对Windows的一些调用都是通过cygwin1.dll实现的, 这也就加大了计算的开销, 对讲求效率的CFDer来说, 绝不是一个好消息. 但Cygwin的一个好处是可以在Windows下进行程序开发, 这对使用Windows从事科研工作的人是个好消息.
另一套解决方案是在Linux下通过交叉编译得到 Windows下可执行的OpenFOAM程序, 交叉 编译环境采用MinGW. MinGW可以看做一个平台, 也可以看做gcc的一个版本, 它可以使你在 A 操作系统上编译得到 B 操作系统的程序. Symscape (http://www.symscape.com)和 blueCAPE (http://www.bluecape.com.pt) 公司在这方面做了大量的 port工作,他们的产品分别是 OpenFlow 和 blueCFD. 他们在提供有偿服务的同时,也公开了其port方案和相应的的 patch, 尤其是 blueCAPE 的 Bruno Santos 还在OpenFOAMWiki 上维护了一个相当全面详细的页面(见后参考链接). 这种采用交叉编译得到的 OpenFOAM由于不存在Cygwin这一层的调用,因此其运行速度较之前一种解决方案会有所提升. 但是这种方案下的缺点是显而易见的, 开发过程还只能在Linux下进行, 系统切换仍然是个问题.
如果能在Windows下利用Cygwin环境进行开发, 同时编译的程序又能脱离Cygwin运行, 那是再好不过了. 这样可以在一个操作系统下同时进行开发/调试和运行, 就像 Windows的native程序一样, 不失为在Windows下使用OpenFOAM的最理想目标了. Cygwin + MinGW为这种目标的实现提供了可能. 在Wyldckat(Bruno Santos @blueCAPE的OpenFOAMWiki ID)的wiki页面上描述了该解决方案, 但对于OpenFOAM的编译过程, 主要还是针对在Linux下利用MinGW进行交叉编译的情况. 对于Cygwin下的MinGW编译, 需要有一些修改的地方,本文把这些实现的细节做一总结描述, 作为该wiki的补充, 主要目的还是给中国的用户/同行做些参考, 尤其是对于年轻的研究生/博士生, 作为科研的主力军, 深入到OpenFOAM这样的专业软件中做些扎实的研究还是有益的, 能让你在方法层面
更加深刻地理解CFD, 至少比拿Fluent算点东西就发paper, 凑合着混毕业要好得多.
需要说明的是, 这种配置/开发/运行方案也有一个不足, 就是编译出来的程序在 Cygwin环境下无法运行, 而需要在Windows的命令行(或bat文件)来使用. 对习惯了使用Cygwin/Linux的人来说有点不爽, 好在MinGW的开发者提供了MSYS环境, 经过简单的配置,我们可以在Windows下按Linux的习惯来运行程序. 这样, Cygwin+MinGW做开发, MSYS 作运行环境,打造出一个 Windows 下开发及使用 OpenFOAM 的 CFD 环境. 基本环境: ~~~~~~~~
操作系统:Windows 7 Ultimate 32 bit Linux环境:Cygwin 1.7 32bit OpenFOAM: 1.6 并行环境:MPICH2 配置过程: ~~~~~~~~
1. Install Cygwin (国内镜像www.cygwin.cn) (1) 除基本安装外,还需安装以下包:
autoconf automake binutils bison byacc diffutils patch doxygen flex gcc-core gcc-g++ git make python readline texinfo wget w3m (2) 其余建议安装包: bzip2 gitk liblzma rxvt vim 2. 修改注册表, 使系统区分大小写
(1) HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\ kernel\\ObCaseInsensitive 设为0. (2) 重启系统使应用生效. 3. 配置Cygwin
(1) 启动Cygwin, home/
echo export TEMP=/tmp >> ~/.bashrc
echo export TMP=/tmp >> ~/.bashrc
以创建OpenFOAM安装目录并使TEMP/TMP变量有效.
(3) 在Windows中建立文件夹, 用于mount OpenFOAM及tmp目录: 在/etc/fstab中添加
其中
- NOTE: 将以上目录设在根目录下比较方便, 且保持命名简洁易记. (4) 重启Cygwin使修改生效. 输入 ln -s /usr/bin/cpp /lib/cpp 以使wmake正确运行. 4. 安装OpenFOAM
(1) 下载OpenFOAM-1.6.General.gtgz, ThirdParty-1.6.General.gtgz解压到安装目录 tar xzf OpenFOAM-1.6.General.gtgz tar xzf ThirdParty-1.6.General.gtgz
(2) 下载PatchesNBatches.tar.gz并解压到$HOME/OpenFOAM目录. 在该目录下运行命令 patch -p0 < pnb/OpenFOAM-1.6_patch patch -p0 < pnb/ThirdParty-1.6_patch (3) 修改脚本, 配置OpenFOAM环境 (3a)在$HOME/.bashrc文件中添加下面一行:
source $HOME/OpenFOAM/OpenFOAM-1.6/etc/bashrc-mingw32
使OpenFOAM配置随Cygwin启动生效. bashrc-mingw32中需将case $WM_ARCH in Linux)中的\改为\以使Cygwin能够假冒Linux. (当然也可以加入 Cygwin选项, 但会涉及到一些需要适应OpenFOAM的规则配置, 如wmake rule 等, 不建议使用. 这种假冒策略是一个trick, 如果仅是本人在 cygwin 下使
用, 这种做法足够, 且可将源码修改降至最低. 至于考虑平台可移植性的通用性设置, 则应该是OpenFOAM发布者该做的事情)
(3b)重启Cygwin, 发现有编译器未安装的警示信息, 不用理会, 这是因为OpenFOAM 认为编译器是mingw32, 有错误提示是正常的. 我们需要做的检查当前系统是否含有gcc(用gcc -v命令, 我的版本是3.4.4)
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库OpenFOAM常用类的一些总结(8)在线全文阅读。
相关推荐: