OpenFOAM的程序开发初步.doc

OpenFOAM的程序开发初步.doc

ID:55631939

大小:46.50 KB

页数:20页

时间:2020-05-21

OpenFOAM的程序开发初步.doc_第1页
OpenFOAM的程序开发初步.doc_第2页
OpenFOAM的程序开发初步.doc_第3页
OpenFOAM的程序开发初步.doc_第4页
OpenFOAM的程序开发初步.doc_第5页
资源描述:

《OpenFOAM的程序开发初步.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、OpenFOAM的程序开发初步一.OpenFOAM应用的类型:使用OpenFOAM进行CAE模拟的,大致可分为三种类型:1)直接利用OpenFOAM的标准的求解器进行模拟,把OpenFOAM替代商业软件来使用,OpenFOAM已基本具有这样的功能和人气,与Fuent,Star-CD等相比较,OpenFOAM显然具有更高的求解效率和灵活性。2)用户自定义求解器,即利用OpenFOAM的基本类库,如finiteVolume,OpenFOAM库来按照自己的求解流程来编写针对某类应用的求解器。用户需要开发的求

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

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

4、究方向。可以肯定的是,目前有很多人关注类型2的应用,毕竟将OpenFOAM当成Fluent或Star-CCM来使用,并不见得方便。但是将OpenFOAM作为类库来构建自己的求解器,这是其它软件无法实现的OpenFOAM的程序开发初步二.OpenFOAM程序开发的基本知识2.1OpenFOAM的基本术语重要的环境变量:$WM_PROJECT_USER_DIR――OpenFOAM的用户目录$FOAM_TUTORIALS------OpenFOAM的算例目录$FOAM_SRC------OpenFOAM库的

5、源程序目录$FOAM_APP------OpenFOAM的求解器目录$FOAM_APPBIN-------OpenFOAM的求解器执行文件目录$FOAM_RUN------用户的算例目录重要的shell:run=cdto$FOAM_RUNsrc=cdto$FOAM_SRCapp=cdto$FOAM_APPutil=cdto$FOAM_APP/utilitiessol=cdto$FOAM_APP/solverstut=cdto$FOAM_TUTORIALS求解器的基本文件结构appName包含求解器源代

6、码的目录+appName.C求解器主程序+CreateFields.H场变量的声明和初始化+Make/编译指令+files编译需要的源程序文件和生成的目标文件+options编译选项,如链接库等appName/appName.C是求解器的主程序appName/createFields.H声明变量,并从文件中读入初值,如p,物性。appName/Make/files所有源程序的名称,一个文件一行,最后一行是目标代码的名称和存放位置,EXE=$(FOAM_USER_APPBIN)/appNameappNa

7、me/Make/options设定查找头文件和库的路径,EXE_INCS,和需要链接的库EXE_LIBS算例的基本文件结构case/算例目录+0/包含初始和边界条件+constant/包含初次读入后,不随时间变化的数据+polyMesh/包含多面体网格数据+transportProperties/包含物性数据+system/包含计算控制和离散格式设定+controlDict包含计算控制,如时间步长等+fvSchemes包含离散格式设定+fvSolutions包含代数求解器或SIMPLE,PISO算法设

8、定具体而言case/0每个需求解的变量需要一个文件设定其初始边界条件case/constant/polyMesh网格数据,如ownerneighbourpointsfacesboundarycase/system/transportProperties物性数据case/system/controlDict设定起始终止时间,时间步长,输出控制case/system/fvSchemes设定程序用到的每个微分算子的离散格式case/system/fvSolut

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。