已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
开源计算力学软件OpenFOAM讲座 OpenFOAM的结构和能力 南京工业大学城市建设与安全工程学院OpenFOAM研讨小组研讨小组QQ群号码 127471850 殷亮2010 12 18于南京 本讲稿的内容参考了HrvojeJasak的演讲内容 版权OpenFOAM研讨小组 遵守GPL协议 归可自由的复制和拷贝 1 OpenFOAM介绍 OpenFOAM 面向对象的计算力学数值模拟库对偏微分方程算子实施有限体积离散 积分形式 故最多处理二阶方程 传递方程适用 使用非结构化网格 但精度与网格相关性较大 以类封装的形式提供离散和数值算法 最大优点 有效的进行大规模并行化计算 并且在很多平台可以移植和调试 底层并行化实施 同时提供 自动网格运动网格拓扑改变 体单元的层化 滑动界面 ggi 及其它拉格朗日粒子追踪及喷射有限元离散及有限面积离散 ext版本 工具类库 ODE求解器 热物理属性 CHEMKIN界面 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项目包括 数值分析 误差估计 网格自适应 RANS LES湍流模型 自由液面 多相流等等材料力学 非线性结构分析 如何分量解耦 接触弹塑性 流固耦合在Chalmers大学的Diesel喷射模型瑞士军方应用 水动力 多所大学贡献 ImperialCollege PolyMilano ChalmersUniversity UniversityofZagreb Croatia UniversityCollegeDublin KingsCollegeLondon等在cfd online上其活跃程度与FLUENT相当 3 版本发展 在2000年 FOAM作为Nabla公司的商业版本与Fluent公司进行策略合作 为下一代CFD软件进行软件设计 HrvojeJasak 自2002年提供了大学免费版本满足复杂要求的高端客户在2004年10月提供公共域版本支持 4 OpenFOAM和C OpenFOAM基于坚实而彻底的C 开发OpenFOAM实施要早于C 的稳定版本的推出 故其并未用标准库 但其类库也随语言而进化其核心代码不断的重写或提炼 清除冗余代码 使用新的语言知识和程序理念其代表了在面向对象 模块化 代码重用方面的经典案例 值得研读 5 OpenFOAM完成了以下的创新 多面体网格支持新的自由液面算法Halo free并行化 无ghost 自动多面体 任意 网格求解器新方法进行拓扑网格变化通过实时选择表进行用户定制 1 2设计理念 用户修改要预先定义模型与模型作用的矩阵过于复杂难于开发 维护及支持缺少支持层 不同相关性的代码混合在一起难以区分开发与维护需要大的团队即使小的改变也需要专业的知识化很长时间才能变得专业封闭的框架 对用户而言存在代码重用性问题单一的开发使得需要单一的测试 1 曾经主流的设计特点 有利于新模型的实现无介入的分层开发便利的代码重用及模块化能应用于超出流体流动的更多应用在不改变已有组件的条件下实现代码的开发和定制化如下例 2 新的理念 软件中方程的表达为solve fvm ddt k fvm div phi k fvm laplacian nu nut k nut magSqr symm fvc grad U fvm Sp epsilon k k 3 分层实现 软件中不同的功能层张量代数场代数场的映射和差分不同类型的离散有限体积方法有限元网格处理 网格运动 拓扑改变 差分格式拉格朗日追踪边界条件定制化线性方程组求解技术分离的物理模型应用程序的定制流体流动 传热燃烧 湍流 喷射电磁学其它模型组合 流固耦合各层可以独立开发 同时又相互依赖 4 用户考虑因素 功能能交换 考虑使用同一界面 使用实时选择表功能块可选用户定制 线性方程求解 梯度计算 对流差分格式开源高层代码共享自动优化 内存和执行分支 1 3 使用 面向问题的求解器框架通用的CFD软件包不可能预先知道并满足求解器需求不能写出完全通用的求解器取而代之的是数值库及实施代码重用通过重用提供基本工具直至需求满足如果重用很难 继续分解代码 并重写代码伴随着高层应用的工具开发求解器的编写及优化所有这些 使得要检查建立求解器必要的部件 再检查能否用在其它处 重用性 2 主要的对象及相互关系 从面向对象的观点 在于识别对和它们所需提供的功能 2 1元类及容器类 其封装了label scalar bool string complex 1 元类 2 容器类 内存管理问题 OpenFOAM写在STL之前 所以有自己的容器类容器类对代码的优化相当重要 需要紧密的控制所有的容器类都以内容类型作为模板 具体实现 Lists 数组容器List 提供序列存储的容器 类似于数组 为数值求解的主要容器 将其视为对单一内存的封装SubList 对List的片段抽取 基于效率考虑 DynamicList 具有动态长度的ListLinkedList 动态数组SLList 单链DLList 双链HashTablesHashTableHashSet 无内容 指针物体的容器 List被创建时 默认为无参构造函数 但有些对象没有无参构造 或不能被拷贝 则要使用指针列代替对指针列需要附带操作 哪一个元素已经被设置了在列的构析函数执行中 谁负责删除指针PtrList存储指针的容器 字典 Dictionary 处理数据的输入和输出关键字 值对的嵌入次序无关 用分号隔开允许嵌入表 表的表 处理数据的输入和输出Ioobject封装了隐式对象注册管理 树形结构 所有的物体都应该从一个文件读或写IOobject由名字 类名 路径 对注册对象objectRegistry的应用 决定储存状态的参数来创建 MUST READ READ IF PRESENT NO READ AUTO WRITE NO WRITEobjectRegistry管理者读写请求 2 2 空间和时间的描述 1 空间的描述空间为基本的计算网格 其主旨为网格独立于离散 应该满足合法的网格需求 网格元点边 两点 面 点列 体 面列 提供体网格的识别 主要可以实现网格转化及后处理 多面体网格点列面列体列边界网格 元面网格列 要保证有序 元网格和元面网格此两类提供了网格特拓扑和几何信息几何体中心面中心体体积面面积边界长拓扑信息围绕体的面体 体点 面支持网格运动 拓扑改变 2 时间描述 控制时间和迭代次数控制数据库读写Time类为顶层类时间记录起始时间结束时间时间步长CPU时间经历时间处理物体注册功能I O注册Root和case路径读写控制 格式及精度 2 3 张量运算 1 张量基础 矢量和张量的运算采用笛卡尔坐标描述采用自动的扩展到n阶的张量运算 三维 现为二阶使用模板 2 实施 模板的使用 可以拓展到complexVectorSpace解决通用性类型的自动演绎 typname功能 运算符重载分量采用枚举类 不用列举多个函数名包含维数和阶数信息 2 4场及场的代数 1 场对象 张量列 运算的再实施场的场 2 边界条件 面网格场 不光是数 包含了行为信息 如本值和梯度值实时读取虚界面虚函数界面继承与面网格场类可定制与特性和功能相关 与并行 3 单位 单位一致可运算单位检查自动单位运算 嵌于场 4 几何场 必要条件值和边界条件网格值在几何下的关系内部场和边界场分离如此对mesh的引用内场边界场 场的场 含边界几何 访问内场 边界条件由于面场为离散服务 模板处理不同类型单位几何场为一完整的独立单元为其注册入数据库继承于IOobject 读写处理 3 矩阵支持 lduMatrix类矢量稀疏矩阵对角线 上三角和下三角分别存储lduAddressing类地址索引 1 稀疏矩阵 具有基本的矩阵代数M MS M低松弛因子矩阵矢量乘 矩阵结构的识别和求解器的选择只有对角线对称性矩阵非对称性矩阵 2 线性方程求解器 继承于lduMatrix solver实施了迭代求解器ICCGBi CGAMG通过C指针优化并行化通过lduCoupledInterface类 升级矩阵矢量乘 3 有限体积矩阵 对矢量和张量采用分离求解储存b处理边界条件实施FV相关的操作H 4 偏微分方程表达 高层机制网格代表空间时间代表进展和迭代带有单位和边界条件的几何场微积分类矩阵支持 储存及吸收处理线性方程求解器方法类 转化算子为矩阵 处理方程方程离散现在能通过算子的复合操作最终体现为对矩阵的贡献单位检查 单元离散 网格支持 并行化都在底层完成 与方程看似无关离散受表控制如此 其能解决一大类计算力学问题 5 物理模型 当前的机理足够写出复杂的物理模型但不方便 如湍流模型等使流动求解器复杂化模型可实时选择不是写大通用的湍流问题可执行程序而是要分装这些模型 1 方程表达 2 物理模型相互作用 数值模拟软件的复杂性多数在于模型与模型的相互作用如 动量方程和湍流模型动量方程需要雷诺应力和湍流粘度湍流方程需要速度场合应力信息湍流不同 结果不同还有如非牛顿粘性模型 矩阵的相互作用等 3 模型库 将同一功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024家具销售合同样本
- 景观工程合同的履行期限
- 工程总价固定合同格式
- 2024年购销合同大米
- 房地产分销代理合同
- 2024个人与公司合作协议书
- 工程维护居间合同格式
- 2024年婚前财产协议书示例
- 城市房屋拆迁流程指南
- 合作经营协议书范本经典案例
- 人教版三年级数学下册数学广角搭配二教案
- TMF自智网络白皮书4.0
- 电视剧《国家孩子》观影分享会PPT三千孤儿入内蒙一段流淌着民族大爱的共和国往事PPT课件(带内容)
- 所水力除焦设备介绍
- 改革开放英语介绍-课件
- pet考试历届真题和答案
- 《企业员工薪酬激励问题研究10000字(论文)》
- 大学英语三级B真题2023年06月
- GB/T 7909-2017造纸木片
- GB/T 25217.6-2019冲击地压测定、监测与防治方法第6部分:钻屑监测方法
- 中医学课件 治则与治法
评论
0/150
提交评论