首页/文章/ 详情

OpenFOAM|14 软件安装

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
优秀教师/意见领袖/博士学历/特邀专家
平台推荐
内容稀缺
4年前浏览3691


本文描述在Windows 10操作系统下安装OpenFOAM及配置相关使用环境的完整过程。

注:本文图片及文字较多,建议收藏以便需要时查阅。

1 安装Liunx子系统

注:WSL的安装取自微软官方文档https://docs.microsoft.com/zh-cn/windows/wsl/。

1.1 检查当前系统版本号

  • 键盘输入WIN R打开运行对话框,输入winver,如下图所示点击确定按钮打开关于对话框
  • 如下图所示查看windows版本号

注:WSL2要求内部版本号1836.1049 或18363.1049 ,版本低了只能安装WSL1。建议使用Windows 10专业版。家庭版或企业版有些版本并不能安装WSL。后面Linux子系统的安装对Windows版本也有要求,如Ubuntu 20.04要求Win10版本16237.0以上。

1.2 激活子系统支持

  • 以管理员方式打开PowerShell
  • 在PowerShell中执行下面的命令
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

如下图所示。

执行完毕后输入“Y”,计算机会自动重启。

1.3 商店安装子系统(二选一)

若本机能够打开Microsoft Store,则可以在Mircrosoft Store中搜索Ubuntu,如下图所示,可以选择Ubuntu 18.04或Ubuntu 20.04。

如下图所示打开Ubuntu 20.04 LTS,点击按钮获取即可自动下载并安装Ubuntu 20.04 LTS。

注:Ubuntu 20.04 LTS是2020年推出的版本,若思想比较保守,也可以选用Ubuntu 18.04 LTS。

安装完毕后可以点击按钮启动打开Ubuntu。

此时可以跳转到1.5节对Ubuntu系统进行设置。

1.4 下载安装子系统(二选一)

若本机上无法打开Microsoft Store,则可以采用下载子系统手动安装的方式。

  • 下载Liunx子系统,下载链接如下,任意挑选一个
[Ubuntu 18.04](https://aka.ms/wsl-ubuntu-1804)
[Ubuntu 18.04 ARM](https://aka.ms/wsl-ubuntu-1804-arm)
[Ubuntu 16.04](https://aka.ms/wsl-ubuntu-1604)
[Debian GNU/Linux](https://aka.ms/wsl-debian-gnulinux)
[Kali Linux](https://aka.ms/wsl-kali-linux-new)
[OpenSUSE Leap 42](https://aka.ms/wsl-opensuse-42)
[SUSE Linux Enterprise Server 12](https://aka.ms/wsl-sles-12)
[Fedora Remix for WSL](https://github.com/WhitewaterFoundry/WSLFedoraRemix/releases/)

可以使用命令(如下以ubuntu18.04为例):

curl.exe -L -o ubuntu-1804.appx https://aka.ms/wsl-ubuntu-1804

或:

Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -OutFile Ubuntu.appx -UseBasicParsing

若觉得命令下载太慢的话,也可以按照上面的网址直接下载。

注:新版本的Ubuntu 20.04目前只能通过windows商店安装,但本机上windows商店死活连接补上,只好作罢。

Ubuntu 18.04子系统我放到网盘中了。

  • 将上一步下载的liunx子系统放置到英文路径
  • 启动PowerShell,进入子系统路径,运行命令(注意修改app_name为当前文件的名称)
Add-AppxPackage .\Ubuntu18.04.Appx

1.5 设置子系统

  • 从开始菜单启动子系统Ubuntu 18.04,如下图所示
  • 此时会自动打开命令窗口,要求输入用户名和密码,按自己需要随便输入就可以了

1.6 安装Windows终端(选择项)

windows Terminal是微软开发的终端程序,可以完全替代windows系统中的cmd及powershell。该程序可以在Microsoft Store中搜索安装。

1.7 设置国内镜像

设置国内镜像的目的是为了在安装软件时加快下载速度,如果连接外网速度够快,也可以不用设置。

  • 执行以下命令更新apt源
sudo apt update && sudo apt upgrade

若下载缓慢,可尝试更新国内ubuntu源,如阿里、清华、中科大等。

  • 利用命令lsb_release -c查看版本代号,如下图所示可看到当前Ubuntu 20.04系统代号为focal
  • 先备份源
sudo cp -v /etc/apt/sources.list /etc/apt/sources.list_backup
  • 执行chmod命令更改文件权限
sudo chmod 777 /etc/apt/sources.list
  • 打开sources.list文件修改

    选择合适的源,替换原文件的内容,保存编辑好的文件, 以阿里云更新服务器为例(可以分别测试阿里云、清华、中科大、163源的速度,选择最快的):

sudo vim /etc/apt/sources.list
  • 编辑**/etc/apt/sources.list**文件, 在文件最前面添加阿里云镜像源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
  • 添加完毕后,按ESC键,输入:wq保存文件
  • 刷新列表
sudo apt update
sudo apt upgrade
sudo apt install build-essential

下载速度瞬间就起飞了。

  • 其他源

中科大源:

deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

163源:

  deb http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
 deb http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
 deb http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
 deb http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse
 deb http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
 deb-src http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
 deb-src http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
 deb-src http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
 deb-src http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse
 deb-src http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse

清华源:

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

1.8 WSL文件系统

WSL在windows系统下的文件位置:

C:\Users\admin\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs

文件组织结构如下图所示:

注:在WSL中安装的所有软件都被放在这个路径下面了。这里的截图是Ubuntu18.04的,不同版本的Ubuntu文件路径名稍有区别。

如果不满足于WSL的完全命令行界面,也可以考虑配置图形系统,这个可以在网络上搜索到一大堆的配置教程。

2 直接安装OpenFOAM8(三选一)

在WSL中安装OpenFOAM与在Linux系统中安装过程完全一致。下面是分别为OpenFOAM8与OpenFOAM-dev的安装命令。

  • Installing OpenFOAM 8

    sudo sh -c "wget -O - http://dl.openfoam.org/gpg.key | apt-key add -"
    sudo add-apt-repository http://dl.openfoam.org/ubuntu
    sudo apt-get update
    sudo apt-get install openfoam8
  • Installing OpenFOAM-dev

    sudo sh -c "wget -O - http://dl.openfoam.org/gpg.key | apt-key add -"
    sudo add-apt-repository "http://dl.openfoam.org/ubuntu dev"
    sudo apt-get update
    sudo apt-get install openfoam-dev

安装过程中,OpenFOAM的下载极其缓慢,有板凳的尽量搭一脚,不然下载百把兆的软件只怕要一个下午,尤其是ParaView通过sourceforge下载,速度更是慢的令人发指。

注:实在等不下去的,可以直接到sourceforge网站下载OpenFOAM包,然后在WSL里头安装。

安装完毕后添加环境变量。

  • 采用以下命令打开环境变量配置文件
vim ~/.bashrc
  • 最后一行添加以下文本
source /opt/openfoam7/etc/bashrc
  • 关闭WSL并重新打开WSL,运行命令:
simpleFoam -help

出现以下提示表示OpenFOAM安装成功。

  • 输入命令paraFoam,出现如下图所示提示表示paraView安装成功。

然而WSL并不带有图形接口而导致paraview无法使用,这里需要另外安装图形显示程序,具体步骤可参阅后面图形程序的安装一节。

3 编译安装OpenFOAM8(三选一)

有时候实在是下载不下来,或者根本没有耐心去等待,此时可以选择编译的方式进行安装。

教程参阅:https://github.com/OpenFOAM/OpenFOAM-8

  • 编译之前检查一下GCC版本。在Ubuntu终端中输入命令:
gcc --version

若提示gcc未安装,可以先利用命令sudo apt install gcc进行安装。

  • 安装依赖包及第三方程序。进入Ubuntu终端,输入下面的命令安装第三方库:
sudo apt install build-essential flex bison git-core cmake zlib1g-dev libboost-system-dev libboost-thread-dev libopenmpi-dev openmpi-bin gnuplot libreadline-dev libncurses-dev libxt-dev
  • 下载源文件。在终端中利用下面的命令下载源文件
# OpenFOAM-8版本
git clone https://github.com/OpenFOAM/OpenFOAM-8.git
git clone https://github.com/OpenFOAM/ThirdParty-8.git
# OpenFOAM-dev版本
git clone https://github.com/OpenFOAM/OpenFOAM-dev.git
git clone https://github.com/OpenFOAM/ThirdParty-dev.git

也可进入网址https://github.com/OpenFOAM选择合适的版本自行下载(如需要安装OpenFOAM8,则下OpenFOAM-8及ThirdParty-8,若需安装OpenFOAM-dev,则下载OpenFOAM-dev及ThirdParty-dev)。为方便后续的描述,这里将下载下来的文件放在D盘根路径下。

  • 文件下载完毕后,将文件解压到/home/OpenFOAM路径中去。启动终端,输入下面的命令:
cd $HOME
sudo mkdir OpenFOAM
sudo cp /mnt/d/OpenFOAM-8-master.zip .
sudo cp /mnt/d/ThirdParty-8-master.zip .
sudo mv OpenFOAM-8-master.zip OpenFOAM-8.zip
sudo mv ThirdParty-8-master.zip ThirdParty-8.zip
# 解压文件,需要预先安装unzip
sudo unzip OpenFOAM-8.zip
sudo unzip ThirdParty-8.zip

解压完毕后文件夹OpenFOAM中包含两个zip文件及两个解压的文件夹,如下图所示。

注意若系统中未安装unzip,此时可以使用命令sudo apt install zip进行安装。

  • 解压完毕后需要配置系统环境变量。利用命令sudo vim ~/.bashrc打开环境配置文件,在文件末尾添加下面的信息:
source $HOME/OpenFOAM/OpenFOAM-8/etc/bashrc
  • 进入到OpenFOAM-8目录下并执行编译命令。可以采用下面的命令:
cd $HOME/OpenFOAM/Openfoam-8
./Allwmake -j

若提示make: not found,则需要利用命令sudo apt install make安装make程序。程序安装完毕后重新执行上面的命令。此时有可能因为文件权限不够而报错,此时可以使用命令sudo chmod 777 -R /home/OpenFOAM/修改文件夹权限,之后再重新执行上面的编译命令。

编译时间视CPU性能而异可能会持续半小时到几个小时。

编译完毕后可以在终端中输入命令icoFoam -help,若出现下图所示的信息则表示安装成功。

4 deb安装OpenFOAM8(三选一)

若嫌弃直接安装OpenFOAM8时下载太慢,又嫌弃编译的方式耗时过长的话,可以尝试利用deb包的方式进行安装。

先下载OpenFOAM的deb包,下载地址为:http://dl.openfoam.org/ubuntu/dists/focal/main/binary-amd64/,在下面可以选择想要安装的版本,比如这里安装OpenFOAM8,下载openfoam8_20200901_amd64.deb,可以使用某雷下载,速度不错几分钟可以下载下来。

注意:下载链接中focal为ubuntu操作系统代号,focal是20.04版本,若18.04版本则为bionic。这可以利用命令lsb-release -c进行查看。

下载下来后将其放到一个英文路径下,如放到D盘下,后面使用命令:

cd ~
cp /mnt/d/openfoam8_20200901_amd64.deb .
sudo dpkg -i openfoam8_20200901_amd64.deb

等待几分钟文件解压完毕后出现如下所示的屏幕提示则表示安装成功。

采用下面的命令修改环境变量:

echo "source /opt/openfoam8/etc/bashrc" >> ~/.bashrc
source ~/.bashrc

此时可以输入下面的命令测试软件安装是否成功。

icoFoam -help

如下图所示提示则表示安装成功。

ParaView的安装过程与此相同。不过在Windows系统下建议直接安装windows版本的paraview。

4 安装OpenFOAM2006

下面是OpenFOAM2006的安装步骤,参阅https://www.openfoam.com/download/install-windows-10.php。

  • 下载OpenFOAM2006

文件地址:https://sourceforge.net/projects/openfoam/files/v2006/OpenFOAM-v2006-windows10.tgz。很奇怪,这个sourceforge链接下载速度挺快的,想不明白openfoam8的下载为何如此难堪。

下载完毕后将文件放到一个英文路径下,如E\OpenFOAM-v2006-windows10.tgz。

  • 启动WSL,输入命令将下载到的OpenFOAM2006安装文件拷贝到当前路径
cp -ar /mnt/e/OpenFOAM-v2006-windows10.tgz .
  • 解压文件
sudo tar -xvzf OpenFOAM-v2006-windows10.tgz -C /opt/
  • 修改文件权限
sudo chown -R $USER /opt/OpenFOAM
  • 安装依赖项
sudo apt install bison flex m4
  • 设置环境变量
echo "source /opt/OpenFOAM/OpenFOAM-v2006/etc/bashrc" >> ~/.bashrc
source $HOME/.bashrc

此时可以重启终端(这里推荐在windows商店中安装windows terminal,很好用),利用下面的命令测试一下是否安装成功。

icoFoam -help

若输出如下图所示,则表示安装成功

安装完毕了之后可以打扫一下战场,将后面不需要的文件给删除掉。

cd ~/OpenFOAM
sudo rm *.zip
sudo rm -r ThirdParty-8

由于是在Windows下运行,因此ParaView建议下载windows版本自行安装。

5 设置环境切换

当同时安装了OpenFOAM 8和OpenFOAM 2006时,可以设置环境变量进行自由切换。

执行命令:

vim $HOME/.bashrc

会打开一个文件,在文件的最底部重新取一行添加下述两行文字:

alias of8="source ~/OpenFOAM/OpenFOAM-8/etc/bashrc"
alias of2006="source ~/OpenFOAM/OpenFOAM-2006/etc/bashrc"

保存并关闭。重新打开新的终端的时候,环境变量自动生效。这时如果用户键入:

of8

则进入OpenFOAM-8环境,类似的,键入:

of2006

则可以进入OpenFOAM-2006环境。

6 安装图形程序

这里使用Xming作为WSL的图形程序,采用以下顺序安装Xming。

  • 下载Xming(下载地址https://openfoam.org/download/windows/xming-download)
  • 采用默认设置安装Xming,安装完毕后启动Xming

还需要配置环境变量。启动WSL,执行以下命令:

echo "export DISPLAY=:0" >> ${HOME}/.bashrc
. $HOME/.bashrc

也可以通过命令vim ~/.bashrc打开配置文件,在文件最后添加文本:

export DISPLAY=:0

此时执行paraFoam可以顺利打开。

这里也可以安装一些OpenFOAM使用中会用到的一些工具,如gedit(文本编辑器)、gnuplot等。

使用下面的命令可以安装。

sudo apt-get install gedit gedit-plugins
sudo apt-get install gnuplot gnuplot-x11 gnuplot-doc libgd-tools

至此,在Windows 10 WSL下安装OpenFOAM的所有工具已经完成。不过为了提高使用体验,可以将WSL集成到VS Code中。

7 将WSL集成到VS Code

VS Code是微软捣鼓出来的一款开源IDE,数不清的外部插件使得该软件上天入地无所不能。

  • 启动VS Code,如下图所示进入插件安装界面,搜索WSL,然后安装Remote - WSL
  • 插件安装完毕后,如下图所示点击左下角按钮Open a remote window
  • 软件自动打开一个新的窗框,并在右下角弹出如下图所示的提示窗口,等待安装完成
  • 完整完毕后如下图所示点击选项Select Default Shell
  • 在上方选择默认终端为WSL Bash,如下图所示。这样以后每次启动Code后会自动链接WSL
  • 如下图所示,终端使用的是WSL

此时可以利用VS Code打开OpenFOAM工作文件夹,然后在终端中直接运行求解器,如下图所示。

运行完毕后还可以直接输入paraFoam进行结果查看

OpenFOAM插件安装完之后,可能还不会直接显示高亮,需要进入 文件-首选项-设置 里面,搜索files.associations,进入setting.json文件,把下面的内容复制进去,然后就可以生效了。

"files.associations": {
   "*Dict": "OpenFOAM",
   "*Properties": "OpenFOAM",
   "fvSchemes": "OpenFOAM",
   "fvSolution": "OpenFOAM",
   "**/constant/g": "OpenFOAM",
   "**/0/*": "OpenFOAM"
   }

本文完结!

---------------------------------------------------------------------------------------------

版权声明:

原创文章,来源CFD之道,本文已经授权,欢迎分享,如需转载请联系作者。





科普代码&命令求解技术通用OpenFOAM
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2020-11-20
最近编辑:4年前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2569粉丝 11328文章 737课程 27
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈