“工欲善其事必先利其器”,软件装不上,讲再多的使用技巧也是白搭。近期不少留言说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内容,可微信扫描下方二维码关注微信公众号。

【OpenFOAM案例】03 Docker安装OpenFOAM的更多相关文章

  1. OpenSUSE下编译安装OpenFoam

    在不是Ubuntu系统下安装OpenFoam,需要采用编译安装的方式.以下以OpenSuSE为例进行编译安装. 1 软件包准备 需要下载两个程序包: OpenFOAM-4.x-version-4.1. ...

  2. 【一起学OpenFOAM】03 OpenFOAM基本使用流程

    OpenFOAM初学者常常对于软件的使用流程感到很迷惑,与其他的具有GUI的CFD软件不同,OpenFOAM的所有操作均为基于文本操作,譬如说里面各种计算模型.计算参数.流程控制参数等,均为通过修改对 ...

  3. 【OpenFOAM案例】01 elbow

    本案例演示利用OpenFOAM的icoFoam求解器计算弯曲管道中的混合流动问题. 1 拷贝tutorials文件 启动终端,且拷贝tutorials文件夹中的文件.利用命令: cp -r $FOAM ...

  4. Linux CentOS7.0 (03)安装验证 docker

    一.安装docker 1.升级 Linux 的软件包和内核 sudo yum update 2.安装 docker (1) sudo yum install docker  (2).验证docker安 ...

  5. Docker02 基本命令、开发环境搭建、docker安装nginx、Dockerfile、路径挂载

    1 基本命令 1.1 docker相关 centos6.5 安装docker环境 >sudo yum install -y http://mirrors.yun-idc.com/epel/6/i ...

  6. 理解Docker(1):Docker 安装和基础用法

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  7. Docker安装和卸载

    一:卸载旧版本 老版本的Docker被称为docker或docker-engine.如果安装了这些,请卸载它们以及相关的依赖项. $ sudo yum remove docker \ docker-c ...

  8. docker 3 docker安装

    centos docker安装 docker支持以下centos版本: centos 7 (64-bit) centos 6.5 (64-bit)或更高的版本 前提条件 目前,centos仅发行版中的 ...

  9. Docker 安装和基础用法

    理解Docker(1):Docker 安装和基础用法 本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 ...

随机推荐

  1. Android软件设计规范---命名规则/代码包设计规则等

    如果你将源码作为产品发布,就需要确认它是否被很好地打包并且清晰无误,一如你已构建的其他任何产品. 作为软件设计师,代码即是产品:不仅需要实现功能,还需有“优美.大方”的外表. 标识符命名法,标识符命名 ...

  2. [JOI2017/2018]美術展

    [JOI2017/2018]美術展 题目大意: 有\(n(n\le5\times10^5)\)个物品,每个物品有两个属性:尺寸\(A_i\)和收益\(B_i\).从中选取一个子集,总收益为\(\sum ...

  3. 通过xml处理sql语句时对小于号与大于号的处理转换

    以上方法,很容易使用,直接ss < #{ss} 法二   <![CDATA[>=]]>表示大于等于      变量<![CDATA[ < ]]>#{变量}表示 ...

  4. HTML 标题标签

    HTML:超文本标记语言基本结构 <!DOCTYPE html> <!--文档的声明 一个HTML文件就是一个文档 --> <html lang="en&quo ...

  5. 用单进程、多线程并发、多线程分别实现爬一个或多个网站的所有链接,用浏览器打开所有链接并保存截图 python

    #coding=utf-8import requestsimport re,os,time,ConfigParserfrom selenium import webdriverfrom multipr ...

  6. 基于WebSocket实现聊天室(Node)

    基于WebSocket实现聊天室(Node) WebSocket是基于TCP的长连接通信协议,服务端可以主动向前端传递数据,相比比AJAX轮询服务器,WebSocket采用监听的方式,减轻了服务器压力 ...

  7. 学习Struts--Chap07:Struts2文件上传和下载

    1.struts2文件上传 1.1.struts2文件上传的基本概述 在开发web应用的时候,我们一般会为用户提供文件上传的功能,比如用户上传一张图像作为头像等.为了能上传文件,我们必须将表单的met ...

  8. HDU 5961 传递 随机化

    传递 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5961 Description 我们称一个有向图G是传递的,当且仅当对任意三个不同的顶点a,,若 ...

  9. “百度杯”CTF比赛 九月场---123

    右键查看源代码 然后构造user.php,显示空白,源码也是空白,既然上边说用户名,密码了,参考大佬的博客,放文件user.php.bak这是备份文件,一打开上边全是用户名,有戏,爆破 添加字典,也就 ...

  10. oracle增删改字段

    添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….); 修改字段的语法:alter ...