OpenFOAM实用手册
1. 如何获得帮助
2. 经验教训
2.1 哲学
2.2 通过使用学习
2.3 通过修补OpenFOAM进行学习
2.3.1 我今天学到了一些东西
2.3.2 代码有问题吗?
3. 安装OpenFOAM
3.1 先决条件
3.2 下载来源
4. 更新OpenFOAM仓库版本
4.1 版本管理
4.2 检查更新
4.3 仅检查更新
4.4 安装更新
4.4.1 工作流程
4.4.2 问题排查
4.5 更新问题
4.5.1 缺少安装包
4.5.2 库的更新
4.5.3 更新的源无法编译
4.5.4 自有代码无法运行
5. OpenFOAM-6源安装更新方法
5.1 动机
5.2 使OpenFOAM-6的源码能够被更新
5.3 重新编译源包
6. 维护OpenFOAM的安装
6.1 应对操作系统更新
6.2 应对操作系统升级
7. 第三方软件安装
7.1 安装pyFoam
7.2 安装 swak4foam
7.3 编译外部函数库
8. 搭建环境
8.1 初始化(source)OpenFOAM
8.1.1 永久初始化(source)OpenFOAM
8.1.2 按需初始化(source)OpenFOAM
9. 单位和维度
9.1 单位检查
9.1.1 关于基础单位的一条重要提示
9.1.2 单位输入语法
9.1.3 单位编程语法
9.2 维度
9.2.1 维度检查
9.3 运动黏度 vs. 动力黏度
9.4 误区:OpenFOAM中的压强
9.4.1 不可压缩
9.4.2 可压缩
9.4.3 误区:不可压缩多相流问题中的压强
10. 文件和目录
10.1 必需的文件目录
10.2 补充目录
10.2.1 处理器
10.2.2 函数
10.2.3 数据组
10.3 系统目录文件
10.3.1 主文件
10.3.2 附加文件
11. 控制OpenFOAM
11.1 施加控制的手段
11.1.1 变量
11.1.2 字典
11.1.3 命令行参数
11.2 字典的语法
11.2.1 关键词--香蕉测试
11.2.2 必须的和可选的设置
11.2.3 陷阱:分号(;)
11.2.4 开关
11.3 controlDict
11.3.1 时间控制
11.3.2 数据写入
11.3.3 加载附加库
11.3.4 函数
11.3.5 外包一个字典
11.3.6 陷阱
11.4 字典的运行时间修改
11.5 fvSolution字典
11.5.1 解算器控制
11.5.2 解算方法控制
11.6 命令行参数
11.6.1 获取帮助。-help
11.6.2 获得控制:-dict
本文档由OpenFOAM公众号整理制作
-
+
首页
2.1 哲学
### 2.1 哲学 OpenFOAM在很大程度上遵循UNIX哲学的一般规则- 参见埃里克·雷蒙德(http://www.catb.org/esr/writings/taoup/html/ch01s06.html) – 这应该是出于偶然、设计或必然规律的原因。 1. 模块化规则:编写通过简洁接口连接的简单模块。 当我们查看所有小的前处理和后处理时,我们会看到该规则在起作用。 2. 清晰规则:清晰胜于聪明。 3. 组成规则:设计与其他程序连接的程序。OpenFOAM广泛使用文本文件可以解释为遵循构成规则的结果。结构化的文本形式可以轻松定义和解释OpenFOAM的输入和输出。 4. 分离规则:策略与机制分离;接口与引擎分开。 5. 简单性规则:设计简洁;仅在必须的地方增加复杂性。 6. 简约法则:仅在没有其它办法的情况下,才编写大型程序。同样,OpenFOAM是大量专用工具的集合,而不是一个庞大的单程序怪兽(一个大小不适合任何人的程序)。 7. 透明性规则:可视性设计使得代码检查和调试更加容易。在这里,我们引用Eric S. Raymond所说的:“当您查看软件系统时能够立即了解它在做什么以及如何工作时,它就是透明的。” CFD被认为非常复杂,但是,OpenFOAM的高级代码的近似数学表示法可以看作是OpenFOAM遵守透明规则的一个示例。 8. 鲁棒性规则:鲁棒性是透明性和简单性的产物。 9. 表示法则:将知识整合到数据中,因此程序逻辑可以是愚蠢且健壮的。尽管在陈述该规则时没有考虑到面向对象的问题,但我们可以观察到,OpenFOAM的数据结构和类吸收了很多复杂性。因此,顶级求解器源代码看起来并不引人注目。 10. 最不惊奇的规则:在界面设计中,总是要做最不惊奇的事情。当我们查看所有共享的命令行选项时,我们会看到该规则在起作用。所有支持时间选择的工具都提供通用选项,例如lastTime或noZero。 11. 静默规则:当程序无话可说时,它什么也不需要说。大多数功能对象都遵守该规则,这些功能对象为用户提供了取消在终端输出的选择。这些输出在测试期间可能有用。 但是,一旦算例正确设置之后,功能对象就将其输出写入到文件夹postProcessing中的相应文件就足够了。 12. 修复规则:当程序必须退出时,请尽早提示并尝试退出。您是否注意到了FOAM FATAL ERROR消息? 13. 经济规则:程序员的时间很昂贵;优先于机器时间节省时间。如果我们允许自己对此规则有一个非常广泛的了解,我们可以假设,OpenFOAM的为关键字2指定默认值的机制就是从用户角度遵循该规则的一个示例,即用户的时间得到了保留。 14. 生成规则:避免hand-hacking(如何翻译比较好?);尽自己的最大可能编写程序。我们可以看到大量使用模板作为遵循生成规则的OpenFOAM的示例。TurbulenceModels框架3是建模框架的一个示例,该框架被编码一次并应用于多种不同的形式。但是,这仅在更广泛的意义上适用,因为声明该规则时并未考虑C++的模板。 15. 优化规则:优化前的原型。在优化之前先使它工作。 16. 多元化原则:不信任所有主张“唯一真实解决方案”的主张。 OpenFOAM为用户提供了很多选择,例如要使用的求解器,求解算法以及离散化和插值方案。 17. 可扩展性规则:为未来而设计,因为它比您想象的要来得更早。OpenFOAM有时会根据其版本或输入文件的格式表现出不同的行为。有关fixedValue边界条件的输入语法差异的示例,请参见第36.4.1节。在这种情况下,重要的教训是允许在不破坏兼容性的情况下进行代码的演变。
poplee
2024年11月5日 19:57
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码