OpenFOAM入門
理论与物理
概述
老师!今天是要讲OpenFOAM入门对吧?它到底是什么样的东西呢?
OpenFOAM是一个基于C++的开源CFD工具包,以有限体积法(FVM)的流体解析为核心,提供丰富的物理模型。存在ESI版和Foundation版两个分支。
我明白前辈说的“至少要把基础的开源部分好好搞懂”是什么意思了。
控制方程
用数学公式表示的话就是这样。
嗯…只看公式还是不太明白…它表示的是什么意思呢?
有限体积法的离散化:
理论基础
“理论基础”这个词我倒是听说过,但可能并没有真正理解…
等等等等,入门的数值解法是有限…也就是说,这种情况下也能用吗?
数值解法的理论背景
老师,请给我讲讲“数值解法的理论背景”!
讲解开源CAE工具所实现的数值解法的理论基础。
有限元法(FEM)的变分原理
请给我讲讲“有限元法”!
结构分析基础的最小势能原理:
使 $\Pi$ 取驻值的位移场 $\mathbf{u}$ 就是平衡解。CalculiX和Code_Aster实现了基于此变分原理的Galerkin法。
有限体积法(FVM)的守恒律
请给我讲讲“有限体积法”!
OpenFOAM采用的FVM,基于控制体积的积分守恒律:
将此积分形式应用于每个控制体积,并对面上的通量进行数值评估,从而得到离散方程。
许可证与质量保证
请给我讲讲“许可证与质量保证”!
开源CAE由于源代码是公开的,因此算法可以由第三方进行验证。另一方面,因为没有商用工具那样的供应商支持,所以用户社区和论坛的信息共享非常重要。
适用条件与注意事项
“适用条件与注意事项”这个词我倒是听说过,但可能并没有真正理解…
- OSS工具的结果,必须用已知的基准问题进行验证
- 注意版本间的非兼容性(特别是OpenFOAM不同分支间的差异)
- 建议通过与商用工具的结果比较,来确认OSS的精度
- 文档不足时,有时需要直接查阅源代码
也就是说,在工具的结果这个环节偷懒的话,之后会吃苦头对吧。我铭记在心!
无量纲参数与主导尺度
老师,请给我讲讲“无量纲参数与主导尺度”!
理解支配分析对象物理现象的无量纲参数,是选择合适模型和设置参数的基础。
- 佩克莱数 Pe: 对流与扩散的相对重要性。Pe >> 1 时为对流主导(需要稳定化方法)
- 雷诺数 Re: 惯性力与粘性力之比。流体问题的基本参数
- 毕渥数 Bi: 内部传导与表面对流之比。Bi < 0.1 时可应用集总热容法
- 库朗数 CFL: 数值稳定性的指标。显式解法中要求 CFL ≤ 1
啊,原来是这样!分析对象的物理现象原来是这样的机制啊。
量纲分析验证
请给我讲讲“量纲分析验证”!
对于分析结果的量级估计,基于白金汉Π定理的量纲分析非常有效。使用特征长度 $L$、特征速度 $U$、特征时间 $T = L/U$,事先估计各物理量的量级,以确认分析结果的合理性。
原来如此。那么,只要分析对象的物理现象能搞定,基本上就没问题了对吗?
边界条件的分类与数学特征
选择合适的边界条件直接关系到解的唯一性和物理合理性。边界条件不足会导致不适定问题,边界条件过多则会产生矛盾。
哎呀,OpenFOAM入门真是深奥啊…不过多亏了老师的讲解,我理清了很多!
嗯,状态不错嘛!实际动手操作是最好的学习方法。有不懂的地方随时来问我。
OpenFOAM为何是“C++的集合体”——设计思想的起源
OpenFOAM的开发始于1980年代末的伦敦帝国理工学院。当时的CFD软件通常是用Fortran“手写”计算流程,但Henry Jasak(后来的主要开发者)等人提出了一个雄心勃勃的目标:“应该能够将张量运算像数学公式本身一样写入代码”。结果就形成了大量使用运算符重载的C++设计。`solve(fvm::ddt(U) + fvm::div(phi, U) == fvm::laplacian(nu, U))` 这一行代码几乎与数学的控制方程一一对应,这并非偶然——设计者们的哲学直接反映在了代码中。
各项的物理意义
- 守恒量的时间变化项:表示目标物理量随时间的变化率。稳态问题中此项为零。【形象比喻】给浴缸放热水时,水位随时间上升——这个“单位时间内的变化速度”就是时间变化项。关闭阀门水位稳定后的状态就是“稳态”,时间变化项为零。
- 通量项(流束项):描述物理量的空间输运·扩散。大致分为对流和扩散两种。【形象比喻】对流就像“河流的流动运送小船”一样,物体随流动被运送。扩散就像“墨水在静止的水中自然扩散”一样,物体因浓度差而移动。这两种输运机制的竞争支配着许多物理现象。
- 源项(生成·消失项):表示物理量局部的生成或消失的外力·反应项。【形象比喻】在房间里打开暖气,那个地方就有热能“生成”。化学反应中燃料被消耗,质量就“消失”。表示从外部注入系统的物理量的项。
假设条件与适用范围
- 连续介质假设成立的空间尺度
- 材料·流体的本构关系(应力-应变关系、牛顿流体定律等)在适用范围内
- 边界条件在物理上合理且在数学上正确定义
量纲分析与单位制
| 变量 | SI单位 | 注意点·换算备忘 |
|---|---|---|
| 特征长度 $L$ | m | 需与CAD模型的单位制保持一致 |
| 特征时间 $t$ | s | 瞬态分析的时间步长需考虑CFL条件·物理时间常数 |
数值解法与实现
数值方法的详细
具体是用什么算法来解OpenFOAM入门的呢?
讲解OpenFOAM入门的数值解法与实现的要点。
原来如此。那么,只要入门的数值解法与实现能搞定,基本上就没问题了对吗?
编译与构建
“编译与构建”这个词我倒是听说过,但可能并没有真正理解…
也就是说,在从源代码构建这个环节偷懒的话,之后会吃苦头对吧。我铭记在心!
输入文件的构成
相关主题
なった
詳しく
報告