WSL2安装OpenFOAM



  • 我本是Fluent忠实用户,苦于囊中羞涩买不起授权只能转向开源世界。平日里靠自动桌子全家桶混口饭吃,主力机必须用Windows又想用OpenFOAM这可咋整?VMware Player实在难用,Workstation买不起也不敢用破解。Virtualbox不知和AMD的哪个驱动八字不合老是出毛病,想了半天还是尝试一下微软的WSL:high:
    OpenFOAM具体的编译安装法在http://dyfluid.com/docs/install.html有详细介绍,我参考大佬的教程把OpenFOAM装进了WSL2里,跑起来感觉还不错。安装过程记了个流水账请各位看看,有错欢迎拍砖。在我的机子上测试计算速度与真系统相差不多,请各位大佬在四通道平台或者更好的服务器上试试效率如何。个人认为这个办法适用于带N卡不方便装Linux的笔记本以及种种原因不想用虚拟机的新手。

    安装前:应用商店内安装Windows Terminal,在Windows Terminal内单击右键即可粘贴剪贴板内的文本,CTRL+滚轮可缩放文字。

    1. 开启WSL 2
      详细教程见https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
      按Win+X——应用和功能——相关设置里的程序和功能——启用或关闭Windows功能——勾选 “适用于 Linux 的 Windows 子系统“和“虚拟机平台”后确定
    2. 重启
    3. 下载并安装 Linux 内核更新包
      https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
    4. 将 WSL 2 设置为默认版本
      打开Windows Terminal,在Windows PowerShell里运行:wsl --set-default-version 2
    5. 应用商店内安装Ubuntu 20.04
    6. 首次启动Ubuntu需要在开始菜单里点击橙色图标的Ubuntu,按照提示设置用户名和密码,完成后关闭
    7. 给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
    
    1. 下载OpenFOAM-8以及ThirdParty-8,路径随意,不知为何用IDM多线程下载的文件会报错,请尽量用浏览器自带单线程下载
    2. 移动和解压安装包
      此步骤我因为图方便踩坑无数!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
    
    1. 编译安装
      更改环境变量:
    nano $HOME/.bashrc
    

    在最后一个空行粘贴

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

    保存退出

    source $HOME/.bashrc
    

    使环境变量生效
    定位到安装包位置:

    cd $HOME/OpenFOAM/OpenFOAM-8/
    

    输入

    ./Allwmake -j
    

    回车后会不停蹦字,需要的时间和电脑性能有关。安装完成后使用blockMesh命令验证是否成功
    齐活



  • 排版不太会玩整的有点乱,请大家多多包涵 :mihu:

    在我的老爷机上跑老大给那个算例结果如下
    真系统 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同样可以这么操作。



  • 兄弟 你用WSL2 时候 gnuplot 这种图像输出能用么?或者说是在计算过程中实时查看残差曲线之类的你是如何实现的哦?之前刚开始学基本没用什么图形界面,最近跟着一个教程学习的时候发现,wsl对图形界面的支持太差了。


  • 管理员

    感谢楼主分享!

    顺便同问



  • @bleach2012 新技能get,多谢老铁



  • @Leon-Zhao 图形界面这玩意确实难搞,我正在尝试以前用Fluent的套路。当时Fluent是装在RedHat服务器上,操作的时候用Windows台式机,两个机子之间用交换机相连。Xshell用来远程输命令,Xftp传输文件,Xmanager把服务器的Fluent界面显示在台式机上。现在有个叫MobaXterm的神器拥有前面三个软件的功能,我正在摸索用这一个软件把活全干了,弄出来再补详细步骤:xinlei:
    印象中微软画过大饼说要给WSL添加原生图形界面,然鹅用最新的预览版也没见着这东西:chigua:


  • 版主 副教授

    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 会接收到信号。进而显示。



  • 老铁们有没有遇到过,升级WSL2的时候失败,然后WSL就不能用了,一直出错,找了很久也没解决就差点重装系统了。
    代价太大又懒,还是用VM吧


  • 版主 副教授

    wsl是win模拟linux的api,就像wine一样。wsl2就是个虚拟机,不过经过微软优化,没其他虚拟机那么嗝应人。

    如果是升级失败,系统里应该有还原点,还原一下更新前的系统状态就好,不会擦除其他个人数据。


Log in to reply
 


CFD中文网 | 东岳流体学术 | 东岳流体商业 | 吉ICP备20003622号-1