WSL2安装OpenFOAM
-
我本是Fluent忠实用户,苦于囊中羞涩买不起授权只能转向开源世界。平日里靠自动桌子全家桶混口饭吃,主力机必须用Windows又想用OpenFOAM这可咋整?VMware Player实在难用,Workstation买不起也不敢用破解。Virtualbox不知和AMD的哪个驱动八字不合老是出毛病,想了半天还是尝试一下微软的WSL
OpenFOAM具体的编译安装法在http://dyfluid.com/docs/install.html有详细介绍,我参考大佬的教程把OpenFOAM装进了WSL2里,跑起来感觉还不错。安装过程记了个流水账请各位看看,有错欢迎拍砖。在我的机子上测试计算速度与真系统相差不多,请各位大佬在四通道平台或者更好的服务器上试试效率如何。个人认为这个办法适用于带N卡不方便装Linux的笔记本以及种种原因不想用虚拟机的新手。安装前:应用商店内安装Windows Terminal,在Windows Terminal内单击右键即可粘贴剪贴板内的文本,CTRL+滚轮可缩放文字。
- 开启WSL 2
详细教程见https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
按Win+X——应用和功能——相关设置里的程序和功能——启用或关闭Windows功能——勾选 “适用于 Linux 的 Windows 子系统“和“虚拟机平台”后确定 - 重启
- 下载并安装 Linux 内核更新包
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi - 将 WSL 2 设置为默认版本
打开Windows Terminal,在Windows PowerShell里运行:wsl --set-default-version 2 - 应用商店内安装Ubuntu 20.04
- 首次启动Ubuntu需要在开始菜单里点击橙色图标的Ubuntu,按照提示设置用户名和密码,完成后关闭
- 给Ubuntu更换镜像源
打开Windows Terminal,默认的页面是Windows PowerShell,为了方便使用Ubuntu把默认页面改成Ubuntu 20.04。
按组合键“CTRL+,”,选择记事本打开.json文件,找到"name": "Ubuntu-20.04"上两行的guid将大括号内的一串串字母数字复制,将"defaultProfile"后括号内的一串字符替换掉,保存退出。
关闭Windows Terminal重新打开,此时显示:
To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details.
则表示成功进入Ubuntu
输入sudo nano /etc/apt/sources.list
后敲回车,输入密码再回车即可编辑镜像源列表。在不是蓝色的行前添加#将其变蓝,光标挪到任意空行粘贴清华源地址:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
CTRL+X退出,询问是否保存时输入Y并回车,回到Windows Terminal界面。
源网页:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
8. 更新系统并安装软件(分次输入)sudo apt update sudo apt upgrade(需要输入y确认) 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以及ThirdParty-8,路径随意,不知为何用IDM多线程下载的文件会报错,请尽量用浏览器自带单线程下载
- 移动和解压安装包
此步骤我因为图方便踩坑无数!WSL2中Linux与Windows可以视为各有一套文件系统,将安装包扔进Linux里后续操作会顺利不少。
Linux内可以使用cd命令访问Windows的文件,路径是/mnt/小写盘符,如 cd /mnt/d 可以定位到本地磁盘D;Windows内访问Linux文件可以直接在文件管理器输入\wsl$(此处应有两个斜杠,我打不出来)
WSL2的起始位置是 /mnt/c/Users/用户名,也就是Windows的 C:\Users\用户名 文件夹。
新建OpenFOAM文件夹:
cd $home mkdir OpenFOAM
用文件管理器将两个zip文件复制到 \wsl$\Ubuntu-20.04\home\用户名\OpenFOAM 文件夹内,
解压与重命名:cd $home cd OpenFOAM unzip OpenFOAM-8-master.zip unzip ThirdParty-8-master.zip mv OpenFOAM-8-master OpenFOAM-8 mv ThirdParty-8-master ThirdParty-8
- 编译安装
更改环境变量:
nano $HOME/.bashrc
在最后一个空行粘贴
source $HOME/OpenFOAM/OpenFOAM-8/etc/bashrc
保存退出
source $HOME/.bashrc
使环境变量生效
定位到安装包位置:cd $HOME/OpenFOAM/OpenFOAM-8/
输入
./Allwmake -j
回车后会不停蹦字,需要的时间和电脑性能有关。安装完成后使用blockMesh命令验证是否成功
齐活 - 开启WSL 2
-
排版不太会玩整的有点乱,请大家多多包涵
在我的老爷机上跑老大给那个算例结果如下
真系统 Ubuntu 20.04.1# cores Wall time (s): ------------------------ 4 1184.27 2 1677.37 1 2250.86
WSL2
# cores Wall time (s): ------------------------ 4 1226.66 2 1528.62 1 2310.36
-
谢谢楼主分享,新人补充一下,对文件进行操作的时候,比如第7步中更换镜像源时,可以通过在终端输入下列命令:
explorer.exe .
这样就可以通过打开资源管理器的方式访问,通过记事本打开修改,这样比通过在中断移动光标修改更快捷、更适合新手。
第11步修改.bashrc同样可以这么操作。 -
@bleach2012 新技能get,多谢老铁
-
@Leon-Zhao 图形界面这玩意确实难搞,我正在尝试以前用Fluent的套路。当时Fluent是装在RedHat服务器上,操作的时候用Windows台式机,两个机子之间用交换机相连。Xshell用来远程输命令,Xftp传输文件,Xmanager把服务器的Fluent界面显示在台式机上。现在有个叫MobaXterm的神器拥有前面三个软件的功能,我正在摸索用这一个软件把活全干了,弄出来再补详细步骤
印象中微软画过大饼说要给WSL添加原生图形界面,然鹅用最新的预览版也没见着这东西 -
putty连ssh,filezilla传文件,xming接图形界面,都是开源的。
Xming 也能接本地的图形界面,比如wsl的。
Xming在软件下载网站softonic下载。
Xming安装用默认的。然后运行,它会显示即将接收到的图形信号的标识。标识就是display number 的编号,默认的是0。
Xming之所以能够接收到DISPLAY的信号 , 得让wsl知道往这里发送信号。让wsl往这里发送信号的操作就是在wsl系统中的 ~/.bashrc 文件中添加下面一句。export DISPLAY=:0
然后保存 .bashrc,重启wsl系统。这时,当wsl系统运行图形界面程序时
(如xclock),Xming 会接收到信号。进而显示。