参考

: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子系统的目录下:

cp -ar /mnt/c/Users/<USER>/Downloads/OpenFOAM-v2012-windows10.tgz .
sudo tar -xvzf  OpenFOAM-v2012-windows10.tgz -C /opt/
sudo chown -R $USER /opt/OpenFOAM

添加一些依赖:

sudo apt install bison flex m4

激活:

echo "source /opt/OpenFOAM/OpenFOAM-v2012/etc/bashrc" >> ~/.bashrc
source $HOME/.bashrc

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

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:
可以通过如下命令找到:

which paraFoam


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

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下:

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(将运行文件输出到自己的路径并起自己的名字):

icoFoam.CEXE = $(FOAM_USER_APPBIN)/myicoFoam

options(加-g全局选项)

EXE_INC = \-g \-I$(LIB_SRC)/finiteVolume/lnInclude \-I$(LIB_SRC)/meshTools/lnIncludeEXE_LIBS = \-lfiniteVolume \-lmeshTools

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

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中第三方库的位置并导入。

手把手教你在windows10下进行openFoam调试相关推荐

  1. 手把手教你在Windows10环境下安装深度学习框架(pytorch or tensorflow)

    手把手教你在Windows10环境下安装深度学习框架(pytorch or tensorflow) 1. 安装Anaconda:(常用的python版本和各类包管理器) 1.1. 下载地址: 1.2. ...

  2. 手把手教你在Windows下使用MinGW编译libav

    2019独角兽企业重金招聘Python工程师标准>>> 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言开发的,不可避免的,libav ...

  3. 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)

    转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...

  4. centos7重新加载服务的命令_阿粉手把手教你在 CentOS7 下搭建 Jenkins

    每天早上七点三十,准时推送干货 阿粉的公司是用 Jenkins 去做的 DevOps 实践,那么想要快速熟悉 Jenkins ,第一步就是去把它搭建一下,这周末闲着没事就玩了一把,将整个过程和大家分享 ...

  5. linux按照mysql为何如此简单_手把手教你在Linux下安装MySQL

    在Linux操作系统下,安装MYSQL有两种方式:一种tar安装方式,另外一种是rpm安装方式.这两种安装方式有什么区别呢?尽管我们在Linux下常用tar来压缩/解压缩文件,但MYSQL的tar格式 ...

  6. 手把手教如何用Linux下IIO设备(附代码)

    关注.星标嵌入式客栈,精彩及时送达 [导读] 朋友们,大家好,我是逸珺. 今天分享一下如何在用户空间操作IIO设备.IIO设备能实现很多有价值的应用,有兴趣的一起来看看~ 什么是IIO设备 IIO是 ...

  7. 手把手教你实现TypeScript下的IoC容器

    在此篇文章开始之前,先向大家简单介绍 IoC.什么是 IoC?以及为什么我们需要 IoC?以及本文核心,在 TypeScript 中实现一个简单的 IoC 容器? 目录 [隐藏] IoC 定义 初识 ...

  8. 手把手教你在windows下源码编译Open3D

    文章目录 前言 1.编译环境 2.编译步骤 3.编译中的bug 3.1 下载超时问题,ispc.pybind11.open3d_sphinx_theme等 3.2 boringssl 3.3 Dire ...

  9. 手把手教会你在 windows10 下安装、配置 Java JDK 14

    1.下载JDK 进入网址: https://www.oracle.com/java/technologies/javase-downloads.html 选择相应的JDK版本,点击JDK Downlo ...

最新文章

  1. java文件读写不完整_Java读取文件内容不完整
  2. IC/FPGA大疆笔试题分析(预分析)
  3. ajax 入参为list_ajax传递给后台数组参数方式
  4. ZLMediaKit_wiki
  5. eclipse export jar file 和 runnable jar file 的区别
  6. keil单片机C语言输入函数,keil编写C程序是不是不能在函数内定义变量啊,求大神...
  7. php正则获取标签,PHP通过正则匹配中文字符 过滤html标签 获取文本内容
  8. 【算法图解|4】JavaScript 如何求数组的最大值和最小值
  9. 推荐一个快速定位深度学习代码bug的炼丹神器!
  10. 歌曲从DTS转换为MP3的方法
  11. donet 微服务开发 学习-consul 消费端开发
  12. Halcon学习(7):颜色识别
  13. 使用VMware10虚拟机安装Linux系统(能力工场)
  14. mysql repeated read_mysql事务之可重复读(Repeated Read)
  15. cbrt c语音_如何在C语言中实现功能重载?
  16. onsubmit和submit事件处理函数怎么不生效呢?
  17. WeexBox 快速上手
  18. 获得当前年月日时分秒并能判断是早晨 中午 下午 深夜
  19. python三级菜单_Python 三级菜单
  20. 【营销获客二】如何用企业微信搭建私域流量营销平台

热门文章

  1. Java黑皮书课后题第3章:*3.8(对三个整数排序)编写程序,提示用户输入三个整数,以非降序的形式显示这三个整数
  2. 2016年第一堂课课后作业1
  3. Google面试题——及答案
  4. 任意长度的高精度大整数加法
  5. OpenCV C++ 05 - Change Contrast
  6. 创建一个dynamics 365 CRM online plugin (一) - Hello World Plugin
  7. 权限 粒度化 到 系统 部门 部门及子部门 个人用户
  8. 第二轮冲刺-Runner站立会议03
  9. Visifire中图表的导出
  10. word通配符使用法详解