最新OpenFOAM讲座高级篇殷亮幻灯片.ppt

最新OpenFOAM讲座高级篇殷亮幻灯片.ppt

ID:62072955

大小:416.50 KB

页数:49页

时间:2021-04-14

最新OpenFOAM讲座高级篇殷亮幻灯片.ppt_第1页
最新OpenFOAM讲座高级篇殷亮幻灯片.ppt_第2页
最新OpenFOAM讲座高级篇殷亮幻灯片.ppt_第3页
最新OpenFOAM讲座高级篇殷亮幻灯片.ppt_第4页
最新OpenFOAM讲座高级篇殷亮幻灯片.ppt_第5页
资源描述:

《最新OpenFOAM讲座高级篇殷亮幻灯片.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、OpenFOAM讲座高级篇殷亮1.1、OpenFOAM历史上世纪90年代掀起的C++及面向对象编程(主要解决软件危机)OpenFOAM与英国帝国大学Gosman的小组和热流体分部相关联(Spalding、帕坦卡S.V.Patankar的研究相关,PHOENICS与STAR-CD-非结构网格)初始类来自于CharlieHill(1993)的博士论文数值工作来自于1993年HenryWeller和HrvojeJasak(两个版本)1、OpenFOAM背景2.开发与应用OpenFOAM的PhD项目包括:数值

2、分析、误差估计、网格自适应、RANS、LES湍流模型、自由液面、多相流等等材料力学:非线性结构分析(如何分量解耦)、接触弹塑性、流固耦合在Chalmers大学的Diesel喷射模型瑞士军方应用(水动力)多所大学贡献:ImperialCollege:PolyMilano,ChalmersUniversity,UniversityofZagreb,Croatia,UniversityCollegeDublin,KingsCollegeLondon等在cfd-online上其活跃程度与FLUENT相当1.2

3、设计理念用户修改要预先定义模型与模型作用的矩阵过于复杂难于开发、维护及支持缺少支持层:不同相关性的代码混合在一起难以区分开发与维护需要大的团队即使小的改变也需要专业的知识化很长时间才能变得专业封闭的框架,对用户而言存在代码重用性问题单一的开发使得需要单一的测试1.曾经主流的设计特点有利于新模型的实现无介入的分层开发便利的代码重用及模块化能应用于超出流体流动的更多应用在不改变已有组件的条件下实现代码的开发和定制化如下例2、新的理念软件中方程的表达为solve(fvm::ddt(k)+fvm::div(p

4、hi,k)-fvm::laplacian(nu()+nut,k)==nut*magSqr(symm(fvc::grad(U)))-fvm::Sp(epsilon/k,k));3、分层实现软件中不同的功能层张量代数场代数场的映射和差分不同类型的离散有限体积方法有限元网格处理、网格运动、拓扑改变差分格式拉格朗日追踪边界条件定制化线性方程组求解技术分离的物理模型应用程序的定制流体流动、传热燃烧、湍流、喷射电磁学其它模型组合:流固耦合各层可以独立开发,同时又相互依赖。4、用户考虑因素功能能交换,考虑使用同一界

5、面,使用实时选择表功能块可选用户定制:线性方程求解、梯度计算、对流差分格式开源高层代码共享自动优化:内存和执行分支1.3、使用面向问题的求解器框架通用的CFD软件包不可能预先知道并满足求解器需求不能写出完全通用的求解器取而代之的是数值库及实施代码重用通过重用提供基本工具直至需求满足如果重用很难,继续分解代码,并重写代码伴随着高层应用的工具开发求解器的编写及优化所有这些,使得要检查建立求解器必要的部件,再检查能否用在其它处(重用性)。2、主要的对象及相互关系从面向对象的观点,在于识别对和它们所需提供的功

6、能。2.1元类及容器类其封装了label,scalar,bool,string,complex1、元类2、容器类(内存管理问题)OpenFOAM写在STL之前,所以有自己的容器类容器类对代码的优化相当重要,需要紧密的控制所有的容器类都以内容类型作为模板具体实现Lists:数组容器List:提供序列存储的容器,类似于数组,为数值求解的主要容器,将其视为对单一内存的封装SubList:对List的片段抽取(基于效率考虑)DynamicList:具有动态长度的ListLinkedList:动态数组SLLis

7、t:单链DLList:双链HashTablesHashTableHashSet:无内容指针物体的容器:List被创建时,默认为无参构造函数,但有些对象没有无参构造,或不能被拷贝,则要使用指针列代替对指针列需要附带操作:哪一个元素已经被设置了在列的构析函数执行中,谁负责删除指针PtrList存储指针的容器字典(Dictionary)处理数据的输入和输出关键字-值对的嵌入次序无关,用分号隔开允许嵌入表:表的表处理数据的输入和输出Ioobject封装了隐式对象注册管理(树形结构)所有的物体都应该从一个文件读

8、或写IOobject由名字、类名、路径、对注册对象objectRegistry的应用、决定储存状态的参数来创建:MUST_READ、READ_IF_PRESENT、NO_READ、AUTO_WRITE、NO_WRITEobjectRegistry管理者读写请求2.2、空间和时间的描述1.空间的描述空间为基本的计算网格。其主旨为网格独立于离散,应该满足合法的网格需求网格元点边(两点)面(点列)体(面列)提供体网格的识别,主要可以实现网格转化及后处理多面体网

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

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

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