用 OpenFOAM 进行张量计算

我们常说 OpenFOAM 是一个 C++ 类库,初学 OpenFOAM 时,我常对 C++ 类库这个概念感到困惑,OpenFOAM 不是一个用 C++ 写的 CFD 软件吗,怎么又成了 C++ 类库?其实 ,CFD 求解器只是 OpenFOAM 的一些高级应用。由于 OpenFOAM 包含了大量基础数学运算库,我们完全可以以一种更底层的方式使用 OpenFOAM,比如今天我们要谈到的张量计算。

在大学的第一堂 C 语言课上,我们便被告知,写程序之前,要先 include 头文件,比如这段 Hello World 代码。

继续阅读“用 OpenFOAM 进行张量计算”

在亚马逊 AWS 上使用 OpenFOAM

OpenFOAM 运行环境已经在亚马逊 AWS Marketplace 上架多时,我最近试用了一下,谈谈感受。亚马逊给新用户提供为期一年的免费服务包,其中包括每月750小时的 EC2 机时,也就是说提供一台可以持续免费运行的虚拟机,配置为1个CPU核心、1GB内存。配置本身还算诱人,比腾讯云、阿里云优惠力度大,也足以试用 OpenFOAM、熟悉远程开发环境了。

继续阅读“在亚马逊 AWS 上使用 OpenFOAM”

动网格算例 – 搅拌容器

本文将详细介绍 OpenFOAM mixerVesselAMI2D 这个算例。这算例有很多值得注意的地方,比如 AMI 边界条件、动网格配置方法、用宏生成网格和 topoSet 等等。

这个搅拌容器可能是一个化工反应容器,我对这个算例的研究背景不太了解,不过算例的几何跟边条都不复杂,很容易搞懂。圆筒容器中间有个转子,圆筒周围是固定的,圆筒里充满了流体,题图是转子转起来后的流速分布。

继续阅读“动网格算例 – 搅拌容器”

从零开始创建 Flat Plate Flow 算例

这算例是 IIT(印度理工学院)某 OpenFOAM 公开课的课后作业,旨在帮助初学者了解 OpenFOAM 算例的结构、了解 blockMesh 和 simpleFoam 的使用方法。这套公开课结构完整,对初学者十分友好,只是教授的印度口音有些难懂。项目网站 Spoken Tutorial Project, IIT Bombay,YouTube 链接 Spoken-Tutorial IIT Bombay

继续阅读“从零开始创建 Flat Plate Flow 算例”

用 git 管理 OpenFOAM 算例(附 .gitignore 文件)

最近在为毕业论文算东西。真的要用 git 和 GitHub 了,才发现很有必要补补课,系统学习下 git。先整理了曾经创建的 GitHub 库 phresher/OpenFOAM_Tutorials_Plus,又找了 .gitignore 文件(git 的一个配置),在这里做个笔记。

继续阅读“用 git 管理 OpenFOAM 算例(附 .gitignore 文件)”

Git、GitHub 和 OpenFOAM-dev

最近在为水波理论的课程论文选题,发现 OpenFOAM-dev 正在添加波浪模型,所以决定追一下更新。公众能获得的最新的 OpenFOAM 就是 GitHub 上的 OpenFOAM-dev 版,用 Git 可以像追剧一样追软件。

今天我们就聊一聊追软件的工具 Git 还有源代码库 GitHub,它们的关系有点儿像爱奇艺客户端和爱奇艺网站。不过,由于 Git 是开源的,任何人都可以在自己的服务器比如 VPS 上给 Git 搭一个 hub,GitHub 则是 Git 的开发者们搭建的,是最常用最知名的代码库,可以为 Git 提供免费服务。

继续阅读“Git、GitHub 和 OpenFOAM-dev”

参数化 blockMeshDict

blockMesh 是 OpenFOAM 最基础的网格划分工具,适合处理简单的体型。但是 blockMeshDict 文件往往被点坐标占据大量篇幅,这些数字毫无逻辑。如果点坐标很多的话,很难将坐标值和点序号对应起来,这样后面 blocks、edges 和 faces 的定义根本看不明白。相信很多初学者都像我一样有类似的体验。

继续阅读“参数化 blockMeshDict”