前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教你在windows10下进行openFoam调试

手把手教你在windows10下进行openFoam调试

作者头像
gzq大数据
发布2021-08-05 14:45:16
2.1K1
发布2021-08-05 14:45:16
举报
文章被收录于专栏:大数据那些事

参考

:http://www.xfy-learning.com/2021/01/05/%E5%88%A9%E7%94%A8VS-Code%E9%98%85%E8%AF%BB%E6%BA%90%E7%A0%81%E5%8F%8A%E8%B0%83%E8%AF%95OpenFOAM/

虽然做着实习,但是科研任务也不能落下,因为即将开题内容为数值模拟,所以先将openfoam环境安装好并进行调试,openfoam都是c++语言编写,而且是在linux环境下运行,所以设计到许多编译器的问题,可以先学相关知识再看本篇博客。 首先,跟着官网教程先下好openFoam:https://www.openfoam.com/download/openfoam-installation-on-windows-10 在这里首先你要下载好linux子系统,在微软的商店里下载,我这里下载的是ubuntu18.04版本。

在这里插入图片描述
在这里插入图片描述

下载好后,进行用户名和密码的输入。 接下来开始安装openfoam,先下好安装包报讯在自己的电脑:

在这里插入图片描述
在这里插入图片描述

接下来将安装包拷贝到linux子系统的目录下:

代码语言:javascript
复制
cp -ar /mnt/c/Users/<USER>/Downloads/OpenFOAM-v2012-windows10.tgz .
代码语言:javascript
复制
sudo tar -xvzf  OpenFOAM-v2012-windows10.tgz -C /opt/
sudo chown -R $USER /opt/OpenFOAM

添加一些依赖:

代码语言:javascript
复制
sudo apt install bison flex m4

激活:

代码语言:javascript
复制
echo "source /opt/OpenFOAM/OpenFOAM-v2012/etc/bashrc" >> ~/.bashrc
source $HOME/.bashrc

最后进行测试能否行得通:

代码语言:javascript
复制
mkdir -p /mnt/c/Users/<USER>/tutorial
cd /mnt/c/Users/<USER>/tutorial
cp -ar $FOAM_TUTORIALS/incompressible/icoFoam/cavity/cavity .
cd cavity
blockMesh
icoFoam
touch cavity.foam

paraView要去下载推荐的win10的:

在这里插入图片描述
在这里插入图片描述

将他解压并添加至环境变量,此时paraview输入在cmd窗口可以直接运行, 但这个时候还需要改一下paraFoam文件才能在linux子系统下直接运行paraview: 可以通过如下命令找到:

代码语言:javascript
复制
which paraFoam
在这里插入图片描述
在这里插入图片描述

找到后将其备份为.bak文件,自己重新写paraFoam:

代码语言:javascript
复制
pre_para=`basename $PWD`
para_file=${pre_para}.foam
>${para_file}
cmd.exe /c "paraview ${para_file}"
rm ${para_file}

接下来保存退出并赋予执行权限: chmod +x paraFoam 这时在刚刚运算好的案例下输入paraFoam随即点击apply即可出图。 这时候基本环境已经搭好,现在需要进行代码调试 首先安装好vscode软件: 下载好此插件:

在这里插入图片描述
在这里插入图片描述

这样就能连进自己的ubuntu子系统,连接后在ubuntu下安装两个插件,插件安装不上可以使用visx离线安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装好后就可以开始进行调试了: 首先: 在自己的openfoam目录下创建好solver文件夹,将官方的solver拷贝到自己的solver下:

代码语言:javascript
复制
cp $FOAM_SOLVERS/incompressible/icoFoam -r .
cd icoFoam
cp $FOAM_TUTORIALS/incompressible/icoFoam/cavity/cavity -r debug_case
cd debug_case #进行网格初始化
blockMesh | tee log.blockMesh

接下来两步至关重要,修改Make文件夹下的files和options文件: files(将运行文件输出到自己的路径并起自己的名字):

代码语言:javascript
复制
icoFoam.C
  
EXE = $(FOAM_USER_APPBIN)/myicoFoam

options(加-g全局选项)

代码语言:javascript
复制
EXE_INC = \
    -g \
    -I$(LIB_SRC)/finiteVolume/lnInclude \
    -I$(LIB_SRC)/meshTools/lnInclude

EXE_LIBS = \
    -lfiniteVolume \
    -lmeshTools

改完后确保自己已经有gdb调试器没有的话自行安装:

代码语言:javascript
复制
gdb --version
sudo apt update && sudp apt install gdb

接下来还需要安装make,gcc这些基本的软件 确保安装完后,修改两个拓展插件的相关配置: of拓展:

在这里插入图片描述
在这里插入图片描述

c/c++: 按住ctrl+shift+p进入设置: 输入c++ UI

在这里插入图片描述
在这里插入图片描述

选择linux版本 此时进入项目根目录(通过打开文件夹进入):

在这里插入图片描述
在这里插入图片描述

此时再次按住ctrl+shift+p输入: ofInit点回车之后再点一次回车即可生成相关的编译和调试文件:

在这里插入图片描述
在这里插入图片描述

随后打开icoFoam.C文件按f5进行调试:

在这里插入图片描述
在这里插入图片描述

成功:

在这里插入图片描述
在这里插入图片描述

可以查看U等等信息:

在这里插入图片描述
在这里插入图片描述

注意: 1.c++插件此处路径要配成官方的gcc:

在这里插入图片描述
在这里插入图片描述

2.如果在调试过程中发现要打开第三方的文件,需要修改options选项,在 EXE_INC下添加依赖到的路径:

在这里插入图片描述
在这里插入图片描述

(注:我此处是因为在调试跟进的过程中报出如下错误: 无法打开“allocator.h”: 无法读取文件’vscode-remote://wsl+ubuntu-18.04/home/pawan/OpenFOAM/ThirdParty-v1912/build/linux64/gcc-6.3.0/x86_64-pc-linux-gnu/libstdc+±v3/include/bits/allocator.h’ (Error: 无法解析不存在的文件"vscode-remote://wsl+ubuntu-18.04/home/pawan/OpenFOAM/ThirdParty-v1912/build/linux64/gcc-6.3.0/x86_64-pc-linux-gnu/libstdc+±v3/include/bits/allocator.h")。 于是我找到了在openfoam中第三方库的位置并导入。 )

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/08/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档