77范文网 - 专业文章范例文档资料分享平台

OpenFOAM常用类的一些总结(3)

来源:网络收集 时间:2019-03-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

OpenFOAM的applications中所看到的标准求解器icoFOAM,simpleFOAM等。显然这一需求是非常大的,从OpenFOAM问世以来,已有很多用户定义了自己的求解器。这类需求的特点是,并不需要特别关心,离散和求解的最底层的知识,如时间项离散,空间项离散等,关注的重点是求解的步骤或者流程。在编程中,通常是顶层的求解流程的开发,在多数情况下可以不编译OpenFOAM的finiteVolume和OpenFOAM库。这种顶层的求解器的开发,是我们以前常常忽略的,或者是以前没有能力做到的。需要指出的是,商业软件中的所谓udf,user subroutine和这是不可相比的。

3)用户自己定义离散方法等。对于研究离散格式、代数求解器等人来说,更关注时间项ddt,扩散项Laplacian,对流项div是如何离散的,能否有更高效更高精度的离散方法,这需要修改finiteVolume库和OpenFOAM库中对应的代码。尤其是对流项,尽管OpenFOAM已经提供了基于NVD和TVD的模板和40多种有名的高阶高精度格式,但可以预见,这仍然是不够的,毕竟对流项的离散仍然是目前CFD的重点研究方向。

可以肯定的是,目前有很多人关注类型2的应用,毕竟将OpenFOAM当成Fluent或Star-CCM来使用,并不见得方便。但是将OpenFOAM作为类库来构建自己的求解器,这是其它软件无法实现的。

二.OpenFOAM程序开发的基本知识 2.1OpenFOAM的基本术语 重要的环境变量:

$WM_PROJECT_USER_DIR ―― OpenFOAM的用户目录 $FOAM_TUTORIALS ------OpenFOAM的算例目录 $ FOAM _SRC ------OpenFOAM库的源程序目录 $ FOAM_APP ------ OpenFOAM的求解器目录

$ FOAM_APPBIN ------- OpenFOAM的求解器执行文件目录 $ FOAM_RUN ------用户的算例目录 重要的shell:

run = cd to $FOAM_RUN src = cd to $FOAM_SRC app = cd to $FOAM_APP util = cd to $FOAM_APP/utilities

sol = cd to $FOAM_APP/solvers tut = cd to $FOAM_TUTORIALS 求解器的基本文件结构

appName 包含求解器源代码的目录 +appName.C 求解器主程序 +CreateFields.H 场变量的声明和初始化 +Make/ 编译指令

+files 编译需要的源程序文件和生成的目标文件 +options 编译选项,如链接库等 appName/appName.C是求解器的主程序

appName/createFields.H声明变量,并从文件中读入初值,如p,物性。

appName/Make/files 所有源程序的名称,一个文件一行,最后一行是目标代码的名称和存放位置,EXE=$(FOAM_USER_APPBIN)/appName

appName/Make/options设定查找头文件和库的路径,EXE_INCS,和需要链接的库EXE_LIBS 算例的基本文件结构

case/ 算例目录

+0/ 包含初始和边界条件

+constant/ 包含初次读入后,不随时间变化的数据 +polyMesh/ 包含多面体网格数据 +transportProperties/ 包含物性数据

+system/ 包含计算控制和离散格式设定 +controlDict 包含计算控制,如时间步长等 +fvSchemes 包含离散格式设定

+fvSolutions 包含代数求解器或SIMPLE,PISO算法设定 具体而言

case/0 每个需求解的变量需要一个文件设定其初始边界条件 case/constant/polyMesh 网格数据,如owner neighbour points faces boundary case/system/transportProperties 物性数据

case/system/controlDict 设定起始终止时间,时间步长,输出控制

case/system/fvSchemes 设定程序用到的每个微分算子的离散格式

case/system/fvSolution 为每个变量选择代数方程求解器/收敛精度及PISO等算法设定 三.OpenFOAM程序开发的理论知识

作求解开发,必须能写出需要求解的控制方程及其定解条件,并且对于如何求解方程或方程组的步骤已经明确。

这些流体力学、传热学以及相关的理论是必需的,所谓连续介质力学中的数学模型,控制方程和定解条件就是表示它的语言。

在这里是不可能说清楚的,这要看个人的功底了。 四 .OpenFOAM程序开发的最简单的例子

下面采用OpenFOAM来开发一个用户自己的求解器。主要是利用OpenFOAM的标准求解器icoFoam,用户不需要写任何代码,只为为了熟悉OpenFOAM程序开发的环境和步骤。 步骤:

1) 将icoFoam目录拷贝到新的目录 可采用下面的Linux的命令实现: 到OpenFOAM的incompressible目录 cd applications/incompressible cp –r icoFoam myicoFoam

以上只是复制目录icoFoam到新的位置,并且新目录名为myicoFoam cd myicoFoam

进入新的目录,查看一下,可以看到里面的文件和icoFoam中是否一样 2) 原文件改名,并且删除依赖文件 将icoFoam.C改名myicoFoam.C mv icoFoam.C myicoFoam.C 删除依赖文件 rm icoFoam.dep

3) 修改编译文件files和options 进入Make目录,打开files文件, 将 icoFoam.C 源程序文件名

EXE = $(FOAM_APPBIN)/icoFoam 可执行文件名 修改为

myicoFoam.C 源程序文件名

EXE = $(FOAM_APPBIN)/myicoFoam 可执行文件名 此例中options不需修改,可以打开看看 EXE_INC = \\ 头文件包含

-I$(LIB_SRC)/finiteVolume/lnInclude EXE_LIBS = \\ 链接库 -lfiniteVolume

4)删除原来的obj文件 rm –rf linuxGccDPOpt cd .. 5)编译 wmake 6) 检验一下

到tutorial目录,检验一下 myicoFoam . cavity

六.OpenFOAM程序开发――例子一:在icoFoam中加入温度场求解 准备: 能量控制方程:

dT/dt+div(den*U*T)=div(a gradT) 在壁面上给定值条件。 需要解决的问题: a)如何创建标量场,T b) 如何创建物性,a

c)如何定义温度方程,并求解 d) 如何在算例中设定T和a e)如何设定T的离散格式

f)如何设定T的求解器的收敛标准等 步骤:

1)创建程序需要的新物性和新变量场

打开myicoFoam.C可以看到,程序开始运行时调用CreateFields.H,创建变量场。 打开CreateFields.H,可以看到程序首先从transportProperties文件中读入物性, Info<< \ IOdictionary transportProperties (

IOobject (

\ 从字典文件transportProperties读入 runTime.constant(), //transportProperties文件位于目录runTime.constant()中 mesh, 网格对象 IOobject::MUST_READ, IOobject::NO_WRITE )

); 创建了Iodictionary类型对象 transportProperties dimensionedScalar nu //首先读入粘性系数 (

transportProperties.lookup(\

); 创建有量纲标量nu,nu通过从字典transportProperties查找”nu”来赋值 可以加上新方程需要的物性

dimensionedScalar DT //首先读入热扩散率 (

transportProperties.lookup(\

); 创建有量纲标量DT,DT通过从字典transportProperties查找”DT”来赋值

此外还要从createFields中读入p,U场,我们要加入的新的变量场为温度场T,最快的加入温度场的方法是拷贝p场的代码,修改为 Info<< \ volScalarField T (

IOobject

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库OpenFOAM常用类的一些总结(3)在线全文阅读。

OpenFOAM常用类的一些总结(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/545865.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: