“工欲善其事必先利其器”,軟件裝不上,講再多的使用技巧也是白搭。近期不少留言說OpenFOAM不容易安裝,今天來談談如何在Linux下利用Docker安裝OpenFOAM。
Linux發行版眾多,估計有幾百種,比較流行的是三個派系:
- RHEL系。比較出名的發行版像Red Hat Enterprise、CentOS、Fedora等
- SuSE系。像OpenSUSE等
- Debian系。流行的如Ubuntu、Linux Mint等
OpenFOAM對於Ubuntu專門提供了安裝方式,利用apt-get方法快速的安裝。不過對於其他的linux發行版,則沒那么方便了,下面的方法主要針對ubuntu以外的linux系統,不過也同樣適用於ubuntu。
本文采用的是Docker方式安裝OpenFOAM,其實也可以利用源代碼編譯的方式安裝,不過編譯過程耗時較長。
以下內容以CentOS為基礎進行解說,其他發行版並未經過測試。
1 安裝前的准備工作
確保自己使用的Linux內核足夠新。在終端中輸入命令查看操作系統內核版本號:
uname -r
至少保證內核版本高於3.10。如下圖所示,此操作系統內核版本為3.10,滿足安裝要求。
注意:確保網絡暢通。
2 安裝Docker
Docker是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。關於Docker,可以自己上網搜索。
2.1 RHEL、CentOS及Fedora
輸入命令更新源:
sudo yum -y update(在RHEL及CentOS上)
sudo dnf -y update(在Fedora上)
輸入一下命令安裝Docker:
curl -fsSL https://get.docker.com/ | sh
sudo systemctl enable docker.service
sudo systemctl start docker
第一條命令安裝過程會持續很久,視網速而定,需要耐心等待。
2.2 SLES以及openSuSE
在SLES發行版上,要先輸入:
sudo SUSEConnect -p sle-module-containers/12/x86_64 -r ''
之后輸入(SLES及openSuSE上):
sudo zypper -n in docker
sudo systemctl start docker
sudo systemctl enable docker
2.3 Debian
輸入命令:
sudo apt-get -y update
curl -fsSL https://get.docker.com/ | sh
3 配置Docker
輸入命令將用戶添加到Docker中。
sudo usermod -aG docker $(whoami)
4 安裝openfoam4-linux
輸入命令:
sudo sh -c "wget http://dl.openfoam.org/docker/openfoam4-linux -O /usr/bin/openfoam4-linux"
sudo chmod 755 /usr/bin/openfoam4-linux
5 運行openfoam4-linux
輸入命令:
mkdir -p $HOME/OpenFOAM/${USER}-4.1
cd $HOME/OpenFOAM/${USER}-4.1
openfoam4-linux
最后一個命令因為要連接docker,如果網速非常慢可能會出錯,多試幾次。連接成功后會下載文件,好幾百兆的文件,可能會持續很久。
出現如下圖所示情況后,耐心等待吧,幾百兆的文件估計要下載很久很久(建議爬牆,否則會很慢)。
6 測試OpenFOAM
當所有的文件都下載完畢后,終端會自動進行解壓。
解壓完畢后會自動啟動Docker,此時可以在里面運行OpenFOAM。
依次輸入以下命令:
cd $FOAM_RUN
cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily .
cd pitzDaily
blockMesh
simpleFoam
paraFoam
如下圖所示。
計算結果如圖所示。
若要關閉docker,則可以使用命令:
exit
關閉后若要再次啟動Docker,可使用命令:
service docker start
cd $HOME/OpenFOAM/${USER}-4.1
openfoam4-linux
啟動Docker后就可以使用OpenFOAM的各種功能了。
更多關於CFD內容,可微信掃描下方二維碼關注微信公眾號。