OpenFOAM 编译安装并测试(Linux)

OpenFOAM(Open Field Operation and Manipulation)是一个用于计算流体动力学(CFD)的开源软件包。它由英国的SINTEF ICT部门开发,并且现在由OpenFOAM基金会维护。OpenFOAM提供了大量的工具来解决各种复杂的科学和工程问题,特别是在流体力学领域。

OpenFOAM 官网:https://openfoam.org

Feature

  • 开源:OpenFOAM是完全免费且开源的,允许用户自由地使用、修改和分发其源代码。
  • 广泛的物理模型:包括但不限于湍流模型、传热模型、化学反应模型等,适用于多种类型的流动模拟。
  • 并行处理能力:OpenFOAM内置了对MPI的支持,可以方便地在多处理器或分布式内存系统上进行并行计算。
  • 强大的网格处理功能:支持多种网格类型(如结构化网格、非结构化网格)以及网格操作(如网格生成、网格变形)。
  • 丰富的求解器集合:提供了一系列预构建的求解器,用于解决不同类型的偏微分方程,如稳态和瞬态流动、不可压缩和可压缩流动等。
  • 脚本语言支持:提供了Python接口,使得非C++程序员也能利用OpenFOAM的强大功能。
  • 社区支持:由于其开放性,OpenFOAM拥有一个活跃的开发者和用户社区,提供持续的技术支持和新功能的开发。

应用领域

OpenFOAM的应用范围广泛,从航空航天到汽车工业,再到能源生产和环境研究等多个领域都有所涉及。它可以帮助工程师和科学家们模拟和分析流体流动、热量传递、固体变形等现象,为设计优化和科学研究提供数据支持。

编译与安装

OpenFOAM可以在Linux和Unix-like操作系统上运行,虽然也有Windows版本,但通常推荐在类Unix系统中使用。使用OpenFOAM需要一定的编程知识,尤其是C++,因为许多高级功能都需要通过编写自定义程序来实现。

Linux(Debian)

前置配置

安装编译环境:

sudo apt update
sudo apt install -y git gcc cmake flex openmpi-bin paraview

拉取源码:

mkdir $HOME/OpenFOAM
cd $HOME/OpenFOAM
git clone https://github.com/OpenFOAM/OpenFOAM-dev.git
git clone https://github.com/OpenFOAM/ThirdParty-dev.git

如果无法连接到 github.com 或者速度不佳,可以使用笔者提前下载的压缩包:

百度网盘:
链接: https://pan.baidu.com/s/1HKJAdPWwtlpu0HrkSLiyKA?pwd=im88
提取码: im88

下载之后将其解压在用户主目录。

确认自己的命令行 Shellbash,或者:

bash

然后加载环境变量:

source $HOME/OpenFOAM/OpenFOAM-dev/etc/bashrc

检查环境变量是否成功配置:

echo $WM_PROJECT_DIR

这将会返回 ${HOME}/OpenFOAM/OpenFOAM-dev。($HOME为自己的用户目录)

编译
cd OpenFOAM-dev
./Allwmake -q -j `nproc`

注意: nproc 会获取电脑当前核心数,使用 -j 选项并行执行编译,使用 -q 选项同时编译多个库和可执行文件。

接下来将会进行大致10分钟的编译(根据电脑性能不同而定)。

更新

源存储库,特别是 OpenFOAM-dev,会定期更新。 可以通过在 OpenFOAM-dev 目录中执行来将更新“拉取”到源目录

git pull

然后可以使用 -update 选项(带或不带并行 -j 选项)将更新编译到 OpenFOAM 中:

./Allwmake -update

如果更新版本没有正确编译,例如在一些非常重大的更改之后,那么应该在重新编译之前清理平台:

wcleanPlatform
./Allwmake

编译后续

在后续使用的过程中,需要将环境变量写入.bashrc 或者 .zshrc 之类的文件:

vim ~/.bashrc
# 或者你的shell为zsh时:
vim ~/.zshrc

在文件最后写入以下内容:

export WM_PROJECT_DIR="$HOME/OpenFOAM/OpenFOAM-dev"
export PATH="$PATH:$WM_PROJECT_DIR/platforms/linux64GccDPInt32Opt/bin"
export PATH="$PATH:$WM_PROJECT_DIR/bin"
export LD_LIBRARY_PATH="$WM_PROJECT_DIR/platforms/linux64GccDPInt32Opt/lib:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="$WM_PROJECT_DIR/platforms/linux64GccDPInt32Opt/lib/dummy:$LD_LIBRARY_PATH"

然后 :wq 保存退出。上述写入内容的具体目录可根据具体编译后的情况而定。

重新载入配置文件:

source ~/.bashrc
# 或者使用 zsh 时:
source ~/.zshrc

测试 OpenFOAM

进入案例:

cd OpenFOAM-dev/tutorials/incompressibleFluid/cavity

这是一个不可压缩流体的封闭腔案例。

ls

可见该目录下有三个文件夹:

├── 0
├── constant
└── system

接下来进行第一步,构建网格

blockMesh

使用 pimpleFoam 求解器来对瞬态流动进行求解:

pimpleFoam

求解后将生成的文件:

0  0.5  1  10  1.5  2  2.5  3  3.5  4  4.5  5  5.5  6  6.5  7  7.5  8  8.5  9  9.5  constant  system

接下来使用 ParaView 进行后处理:

paraFoam -builtin

在这里插入图片描述
在这里插入图片描述
接下来你会看到:

在这里插入图片描述
点击 Play 可以查看随时间变化的状态:

在这里插入图片描述

点击 Glyph 创建矢量箭头:
在这里插入图片描述

然后:
在这里插入图片描述在这里插入图片描述更多操作请读者自行探索学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值