OpenFOAM Sharing
Created time
Jul 10, 2025 11:08 AM
type
Post
status
Published
date
Jul 10, 2025
slug
openfoamsharing
summary
tags
news
top
Recommend
category
post
icon
password
Place
Last edited time
Mar 26, 2026 12:24 AM
前言:
Preface:
#updating
大多数新人会觉得 OpenFOAM 很难入门,特别是自学的勇士们。
本文对一些可能的问题和选择,试图给出明确的答案,而不是类似于“如果你有时间有能力,学习这个会对你有帮助。。。”“有时间的话你应该看一下,会帮助你更好的理解。。。”这种模棱两可让人犹豫的建议。
总的来说,本文试图指出一条“连续”“渐进”“清晰”“明确”“没有间断”“没有跳跃”的 OpenFOAM 入门学习路线。
关于系列本相关系列参考了大量的开源资料,有些进行了修改,有些补充了个人理解和实践。如果读者发现错误,又或是觉得哪里衔接不够连贯,欢迎在每篇下留言建议或者讨论。也欢迎来 https://aerosand.cn/Cafe/ 留言讨论。
前置知识
对于新人而言,微积分、线性代数、科学计算一般都是至少通过本科期末考试的水平,现阶段也够了,不需要系统复习,以后遇到不明白的地方针对性补充即可。
很多人在大学里修的 C/C++ 课程都停留在勉强能用的程度,C++ 更是很少用到面向对象特性。
但 OpenFOAM 却是 C++ 编写的。
建议提前完整过一遍 C++ 基础知识。面向对象特性就算看完其实很难有深入的理解和使用心得。只能持续学习,遇到问题再解决问题。
至于专业内容,比如湍流、反应、燃烧等等,每个人专业不同,不在此讨论内,没什么好说的。
OpenFOAM 第 0 步
环境准备
常用指令
OpenFOAM 第 1 步
OpenFOAM 第 1 步必不可少,特别是对于第一次接触 OpenFOAM 的新人来说。请不要忽略它,请耐心走完。
User Guide
官方用户指南 User Guide (openfoam.com)
- 官方用户指南无论如何都应该是最先被阅读的材料
- 官方指南也许不是基于最新版本,但是并不影响阅读和学习
- 通过官方手册,可以对 OpenFOAM 有一个最初的了解
Tutorial Guide
阅读完官方手册就应该立即阅读教程指南。链接如下
官方教程指南 Tutorial Guide (openfoam.com)
- 官方教程指南是第二最先被阅读的材料
- 通过官方教程指南,可以对 OpenFOAM 仿真计算的各个环节有清晰的认识
学习建议
- 学习过程中,如果遇到问题请在 obsidian、typora 之类的任意笔记软件上详细记录下自己的困惑,有些问题其实并不需要马上彻底搞清楚
- 重点是达成阅读的完整性,形成对 OpenFOAM 使用的整体理解
- 英语阅读可能确实是一个障碍,但必须要克服
- 请一页一页一行一行阅读,需要的时候在 OpenFOAM 动手尝试
- 必要的话,以上两个材料,请阅读第二遍
完成第 1 步后,case 类型的教程基本上就不需要继续拓展了,需要进入第 2 步补足理论。
OpenFOAM 第 2 步
计算流体力学基础
搞懂计算流体力学基本方程
CFD理论基础00 基本方程 | 𝓐𝓮𝓻𝓸𝓼𝓪𝓷𝓭 (aerosand.cn)
- 现阶段不需要面面俱到特别深入,随着学习推进再逐渐深入
有限体积法基础
基础入门只需要紧盯四大项的一般离散,旨在获得一个对有限体积法思想的整体理解。
如果有人一点都不了解有限差分法,那应该先简单了解有限差分思想
CFD理论基础01 有限差分法初步 | 𝓐𝓮𝓻𝓸𝓼𝓪𝓷𝓭 (aerosand.cn)
然后看有限体积法初步
CFD理论基础02 有限体积法初步 | 𝓐𝓮𝓻𝓸𝓼𝓪𝓷𝓭 (aerosand.cn)
有限体积法四大项离散
强烈推荐相关博士论文介绍理论的章节,简洁直接,脉络清晰
Jasak1996
学习建议
- 所有的公式都需要新人自己手推 2 遍以上
- 最好的学习是输出,强烈建议新人独立的梳理一份自己的笔记
强烈推荐同时阅读书籍
The Finite Volume Method in Computational Fluid Dynamics: An Advanced Introduction with OpenFOAM® and Matlab | SpringerLink
新人可能会感觉书中陌生的知识点有点多,英语文本加上符号系统,读起来很容易烦躁,这些都非常正常。本书的阅读可以贯穿整个学习过程,所以不要着急,请耐心阅读,慢慢阅读,不要求所有部分都读懂,可以暂时先跳过一些部分,或者在网上找一些视频或者文章辅助阅读,慢慢啃,会大有帮助。请做好阅读两遍以上的觉悟。
再次强调,不要强求马上看完本书,完成有限体积法初步之后,即可开始第 3 步。
OpenFOAM 第 3 步
迭代
后期的学习很多时候确实无法做到线性推进。很多时候,学习了后面的知识才能补足对前面知识的理解,迭代是必不可少的。
在有了一定的理论基础之后,强烈建议重新跟一个 case 类教程。不仅能够复习补充官方手册的内容,而且能结合有限体积法基础对操作有更深入的理解。推荐
Wolf Dynamics 系列基础教程,完全免费,配套完整,讲解细致,材料翔实。OpenFOAM Introductory Course Training Material (wolfdynamics.com)
深入
之后推荐下面的博士系列课程,有几点需要注意
- 请耐心的一步一步跟着做
- 在 High-level programming 之后,因为涉及 C++ 和算法实现,可能会感觉困难,不理解的地方可以跳过,请不用担心
- 就算有些地方跳过也要完整跟完,有些地方读不懂也要粗略扫一遍。
OpenFOAM 第 4 步
开发编程基础
旨在补充有限体积法的数值原理和 OpenFOAM 求解器代码实现之间的“跳跃”,补全学习过程中可能有困惑的点,让学习更加顺畅。至于自定义边界条件、utility 等内容均在求解器主框架之后,以后会逐渐涉及,不用担心。
跟完这个系列,对 OpenFOAM 开发编程大概有了一个认识,包含代码架构、编程语法、SIMPLE 算法等内容。
实际开发大多还是基于 OpenFOAM 标准求解器进行修改。
学习建议
C++ 最晚也要从这一步开始学习,至少该断断续续的查询了解。
完成这个系列后,下一步从数学公式出发,一点一点的啃 OpenFOAM 标准求解器。
OpenFOAM 第 5 步
基本求解器
开始 OpenFOAM 的求解器学习。
OpenFOAM 求解器学习系列 | 𝓐𝓮𝓻𝓸𝓼𝓪𝓷𝓭 (aerosand.cn)
这里的求解器学习并不是说要细挖每行代码的实现。我们仍然保持在应用实现层面,重点学习如何利用 OpenFOAM 框架,学习 OpenFOAM 是如何实现从物理方程到数值计算的。在理解原生求解器的过程中,会慢慢发现自己好像可以修改自己的求解器了。
学习建议
动手实践是最好的学习方式。理论推导和编程实现,两方面都要耐心去做。
OpenFOAM 最终步
大部分人的目的应该就是这里,通过前面艰苦的学习,终于要开发能够解决自己专业问题的求解器。
Loading...