自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

陈十七的博客

欢迎一起讨论CFD!qq:1019003721

  • 博客(46)
  • 资源 (15)
  • 收藏
  • 关注

原创 Fluent的msh格式网格学习

本文介绍Fluent的msh格式文件的一些内在含义,方便自编程。

2022-06-23 12:54:18 5548 1

原创 OpenFOAM一种批量修改参数计算算例的方法

在需要大量修改参数计算算例的时候,脚本能帮我们省下很多功夫。参考一篇知乎文章的做法,并作出改进。现在可以编辑特定的文件名字,而不是用参数来作为文件名了,这样在后期批量后处理的时候会更方便。

2022-04-15 11:00:59 1299

原创 OpenFOAM写代码用并行时出错的一种解决办法

OpenFOAM自己写程序,在只有单核计算时,寻址不会有什么问题。但如果改用并行,就会报错。一种解决办法就是用for循环。

2022-04-11 12:27:24 1452

原创 OpenFOAM找指定点的Cell label

OpenFOAM中,每个Cell都能找到对应的位置信息(mesh.C()[celli]),但是对于一个特定的位置点,无法直接与某个Cell进行直接的联系。因为Cell是离散的一个个点,其对应位置是有限的集合;而整个空间的位置点个数是无限的,是连续的。所以它俩只能是单射的关系。

2022-04-11 11:38:08 969

原创 OpenFOAM动网格的壁面边界通量修正

OpenFOAM使用动网格时,壁面速度边界条件要换成movingWallVelocity类型。这个边界类型是如何实现壁面运动时通量的计算和修正的?上一篇学习了内场网格变化时通量的修正,这一篇学习这一movingWallVelocity类型的实现原理。

2022-04-08 20:08:25 1292

原创 OpenFOAM动网格的通量修正

OpenFOAM处理动网格的思路很简单,就是在网格变形(mesh.controledUpdate())之后,对速度通量进行修正。其中包括:correctPhi.H,fvc::makeRelative(phi,U)。下面一个个进行学习并记录。

2022-04-08 10:23:21 1743 3

原创 OpenFOAM实用脚本之cat和管道命令grep提取文本信息

本文介绍使用cat和grep等命令构造脚本,提取log文件中的信息,方便CFD的后处理。

2022-04-06 23:02:13 1562

原创 OpenFOAM的fvVectorMatrix——ldu矩阵学习(一)

因为研究需要,学习OpenFOAM里的fvVectorMatrix中的ldu矩阵。先用Info的方式输出一些信息,得到浅层的认识。

2022-03-31 21:29:20 1999

原创 OpenFOAM的fvc::reconstruct(phi)

体元的值U是包围其体的所有面上的流量之和除以所有面的面积总和求得的。

2022-03-30 18:15:54 1411 1

原创 OpenFOAM的面法向向量指向

OpenFOAM对网格的拓扑有着严格的要求。其中,每一个单一的面(face)都会有其对应的owner和neighbour。在考虑某一面的面法向向量时,方向应该是朝哪一边?下面用一个简单的网格测试一下。

2022-03-27 11:31:25 1245

原创 OpenFOAM常用头文件(一)——createPhi.H

createPhi.H文件内容,方便查看。

2022-03-26 20:11:13 1381 1

原创 OpenFOAM的泊肃叶流动算例

泊肃叶流动是流体力学里面一个基本算例,排在库埃特流动后面。其应用很广(管道流动),有理论解,经常被用来验证算例、测试算法等。本文介绍如何用OpenFOAM复现泊肃叶流动。

2022-03-25 10:14:27 2463

原创 借助matlab批量处理OpenFOAM-CFD数据

在后处理的过程中,我们要提取数据,并进行一定的处理(取平均、均方根),然后作图,和其他结果比较等。这些操作相对机械简单,但如果数据一多,处理起来就很繁琐了。这时候,运用程序或脚本来帮我们处理就显得非常重要,就能省下很多时间喝茶了!

2022-02-28 20:26:22 1679 1

原创 OpenFOAM-v2006重叠网格挖洞问题研究以及overset代码解析(八)walkFront函数

​总的来看,这个walkFront函数的主角是面元face,而我们要进行标记的是cell。每一个face都会对应两个cell分别是own和nei,判断其是否要进行插值运算,则是根据allStencil是否有大小。而allStencil是在markDonors进行定义的。在markDonors里,如果两层网格里的两个单元相互有映射关系且其中任何一个都不是HOLE类型,那么就会有一个donor,也就是说allStencil就会有大小,在这里加上isFront的条件,使得这一个单元会被标记为INTERPOLATE

2022-02-08 16:02:19 1228

原创 OpenFOAM-v2006重叠网格挖洞问题研究以及overset代码解析(七)markDonors函数

allDonor这一个labelList(下标列表)就记录了各体元的贡献单元所在的zone。因而markDonors并非只是记录个体元的贡献单元,而是这些贡献单元所在的zone,因为在多层网格重叠的情况下,系统必须判断要用哪一层的单元来作贡献插值。

2022-02-05 22:28:39 902 2

原创 OpenFOAM-v2006重叠网格挖洞问题研究以及overset代码解析(六)markBoundary函数

综合来说,markBoundary这一函数是先将各部分网格边界上的体元进行一次标记,在这一过程中,即使是内部网格(与边界不接壤),如果它和某一层网格的特定边界相重合,那么这个网格也会别标记。需要注意的是,这是对于patchType进行的,和markHole的cellPatchType是不一样的。前面...

2022-02-03 15:29:17 1152 1

原创 OpenFOAM不可压求解器pimpleFoam研究(一)粘度实现

本文讲解pimpleFoam等有处理湍流粘度的不可压求解器的粘度项,并给出引用nu的一个写法。

2022-01-26 21:41:39 4723

原创 OpenFOAM-v2006重叠网格挖洞问题研究以及overset代码解析(五)总结

以boundBox为中介,来判定背景网格的单元是否与壁面相接触,首先根据该单元的范围来调取对应的圆柱层单元,节省了很多比较坐标位置的处理的时间。试想,如果每一个背景网格的单元都和圆柱层的每一个单元进行坐标的判断,那么可想而知会浪费多少时间。

2022-01-16 21:44:36 1619 1

原创 OpenFOAM-v2006重叠网格挖洞问题研究以及overset代码解析(四)i1遍历范围

结合上一篇,可以知道,i1的范围对应的是一个体元所在的nDivs的一个boundBox,其maxId和minId就是这个体元对应的index范围。再结合前面的内容,可以知道这一版overset的挖洞机制了:如果在一个体元的boundBox内,与另一层网格的PATCH所对应的boundBox有重合的地方,那么这个体元就会被判定为hole。它的原理绕开了繁琐的坐标位置判定,利用每个体元都有的位置框作为中介,来判定不同网格之间的位置关系,真是妙哉!我想,重叠网格的精髓就是boundBox吧。

2022-01-15 11:47:14 704 1

原创 OpenFOAM-v2006重叠网格挖洞问题研究以及修正——网上有相同问题的同行以及他们的解决办法

今天上google,登了cfdonline看到有人提出相同的问题:Hole cutting problem using overset of OF1812一些人有提出解决办法,但好像都不能解决这个问题,额外收获一篇overset的解析文档。在帖子的最后,有同行通过编程解决了这个问题:allow overset hole to be further away from the wall patch效果是这样的:红色是HOLE的区域,这时已经远离了壁面,效果也不错。他的做法是这样的.

2022-01-14 22:03:17 781 2

原创 OpenFOAM-v2006重叠网格挖洞问题研究以及overset代码解析(三)vals是什么?

可以知道patchParts就是一个nZone x nDivisions的列表,vals就是其中一个zone的nDivisions列表,其中存放了nDivisions个网格量,且可以读取type进行判定。左图是overlaps的输入,右边是markPatchesAsHole的传参。对应如下:const boundBox& bb —— srcPatchBbconst labelVecto

2022-01-13 21:57:45 1833 1

原创 OpenFOAM-v2006重叠网格挖洞问题研究以及overset代码解析(二)PATCH是什么类型的patch?

综上,PATCH对应于除了overset、empty之外的patch,在圆柱绕流这个算例中,wall被指定为PATCH,overset被指定为OVERSET,empty默认为OTHER。

2022-01-13 18:36:00 1210 1

原创 OpenFOAM-v2006重叠网格挖洞问题研究以及overset代码解析(一)整体函数框架结构

前言使用OpenFOAM-v2006版本的重叠网格时,其挖洞只能挖出壁面以及壁面附近区域的网格,而离重叠区边缘(fringe)还有一定距离,如下图所示:经研究,其和挖洞策略有关系,修改需要动源代码,十分费工夫。foam-extend-4.1版本有比较好的重叠网格功能,挖洞也很完善,能挖到边缘,是比较标准的,但extend比较大杂烩,也没有其他一些我需要的功能,所以只好作罢。我只好以extend版本为参考,修改2006版本的挖洞相关的代码来修正这一问题。这个过程需要深入地读取源码,特此记录。

2022-01-13 16:02:25 4575 1

原创 OpenFOAM的圆柱绕流算例记录

圆柱绕流是流体力学里最经典的算例之一,受到众多学者的“喜爱”。初学CFD的人除了空腔、管道流之外,最先接触的莫过于圆柱绕流了。圆柱绕流能反映流体流过障碍物时的各种情况:层流向湍流的转捩、流体的剪切与分离、边界层、卡门涡街现象等等,是深入理解流动机理的重要算例。因为经常要算圆柱绕流,在这里做一些记录,记录一些细节,以防以后忘掉。这次做Re=200时的圆柱绕流算例,画网格用ICEM,CFD软件用开源软件OpenFOAM,后处理用tecplot。1. 前处理:画网格用ICEM画网格。圆柱直径D=1m,计算

2021-09-08 23:58:13 12158 9

原创 OpenFOAM无反射边界条件源码学习

求解流声分解法的shen方程时,需要对变量的边界作无反射处理。OpenFOAM提供的无反射边界条件有advective和waveTransmissive这两种,但这两种似乎都不能满足笔者的需要,可能要进行某些修改。在这之前,先来学习一下这两种无反射边界条件的代码以及它俩的区别,这对自己的运用起到帮助。这里会参考日本博主的博文。他用的是英文,而且只起了个开头,后面重要的没写(等他好久了都没补上)。我写点中国人看得懂的,顺便把后面的内容也补上。无反射边界条件基于有限体积法,OpenFOAM的边界条件就是

2021-09-07 21:00:09 3569

原创 “cannot be called for a calculatedFvPatchField“——OpenFOAM中实现ρU(rhoU)边界条件的源码学习

因研究需要,特写一篇非单一变量(ρU, rhoU)边界条件的实现过程。在解可压NS方程时,rhoCentralFoam(解析)对动量方程的ρU进行直接的插值求解。换句话说,以ρU作为一个守恒变量,在方程中先进行求解,再分别更新ρ和U来。我们知道, 有限体积法的边界条件就是计算边界面上的通量。在OpenFOAM中单一变量ρ和U的边界条件都必须要分别设置好,这意味着它们边界面上的通量如何计算将由我们来进行决定,其中最常用的有fixedValue(第一类边界条件)和zeroGradient(第二类边界条件)。*

2021-09-03 16:58:15 1512 2

原创 OpenFOAM的周期性边界条件设置——ICEM画圆柱绕流网格为例

参考博文OpenFOAM中循环边界条件(cyclic)设置,我按步骤做了一遍,结果用checkMesh检查会有error(一些面不匹配之类的),然后再加上博文OpenFOAM中CreatePatch的用法上面的步骤,就成功了!由此记录一下。...

2021-05-23 10:55:42 4072

转载 OpenFOAM自带网格软件——基于snappyHexMesh的圆柱网格画法

0.前言最近在研究OpenFOAM自带的网格生成软件——snappyHexMesh,并准备拿圆柱绕流算例试试手。主要参考:京东手机的博客和刘楚云知乎的文章。在他们的基础上,学习不同参数对最后网格的影响,并记录下过程。1.创建圆柱的stl文件这里用到三维建模软件UG NX6.0。之前用AutoCAD,生成的stl文件的XYZ坐标都会自动拨到正值,这在CFD里是比较麻烦的,所以改用UG。这里忽略画的过程。将stl文件放到OpenFOAM算例的文件夹里,用paraview打开:2.用AutoSurfac

2021-03-05 16:45:39 9464 14

原创 OpenFOAM大涡模拟湍流模型之Smagorinsky模型代码详解

本人南航CFD研究生,欢迎加qq:1019003721互相学习讨论!本文将介绍OpenFOAM里面的大涡模拟相关代码。起因是最近学习OpenFOAM中的大涡模拟,在一篇OpenFOAM中的LES湍流模型及其植入的专栏中看到,但是里面的公式不知道是什么格式,虽然知道一些变量,但一时间也无法弄清楚。因此一边学习张兆顺教授的湍流大涡数值模拟的理论与应用及相关文献,一边看代码校对。(相关文献资料下载)在这期间,看到CFD中文网的李东岳教授发的CFD中的LES湍流模型。这里面讲得非常详细。我将结合上面的内容和Ope

2021-01-06 21:34:06 8732 1

原创 用tecplot作平均速度流线图

前言在一些圆柱绕流等非定常流动的文献中,时间平均流线作为其中一种流场的结果,能反映出流场时均的特性,具有研究意义。但是用tecplot生成流线时,只能画瞬时的流线,如下图:很明显,这不是我们想要的时均流线。本文依旧使用tecplot,稍加操作就能产生时均流线。所用软件:OpenFOAM(CFD流场计算开源软件),或者其他能计算平均流场的CFD软件。tecplot R2015版(后处理工具)打开流场点击上方工具栏的Data–>Alter,按下图输入公式:这里特意说明一下,tecpl

2021-01-05 11:27:17 16019 9

原创 修改OpenFOAM中的pisoFoam使其按照最大库朗数修改最小时间步

前言在学习OpenFOAM中的LES模拟时,发现一开始的库朗数会比较大,我不得不将时间步调到1e-7秒。但当时间推进到1000步左右时,库朗数就降到0.2左右了(以我自己的算例来举例)。如果仍是以这样的时间步计算到最后,以来增加了计算的时间,二来库朗数太小又会影响计算结果(曾算过负的阻力系数)。因此,在计算的过程中将库朗数维持在某个值就显得尤为重要。要在OpenFOAM上实现这一功能,需要将solver(求解器)进行小改并重新编译。本文以pisoFoam为例将这一实现过程进行展示。网上能搜到关于这方面的

2020-12-19 17:51:20 4698 12

原创 用tecplot导出圆柱绕流中的表面平均压力系数

需要软件:tecplot15,matlab需要语音讲解请转到我录的b站视频,ID:带一司机,还上传了其他前处理(画网格),后处理视频等等,后续会继续更新,欢迎关注:)https://www.bilibili.com/video/BV1Mr4y1w71c/1. 导入算好的云图,这里是双圆柱绕流的算例,Re=2e6,使用DES湍流模型,经过一段时间计算之后,平均压力场如下:这里平均压力场(pMean)是用OpenFOAM的后处理工具导出的,这里不讨论其他CFD软件。1.5 计算压力系数

2020-11-08 16:53:20 9502 3

原创 应用halton序列生成均匀散点图

前言一门课的作业要用RBF-DQ方法计算流场。简单来讲就是要在无网格的条件下用高精度格式实现流场的仿真计算。生成散点图时,用蒙特卡洛的方法得到的散点图分布不是很均匀,于是想到一种叫做halton的序列。本篇将运用halton序列生成均匀的散点图。halton序列原理点下面的链接看halton序列的介绍:https://blog.csdn.net/Amber_amber/article/details/47421053生成散点图代码实现为了方便展示,这里用matlab进行编程。实际上h

2020-06-22 18:18:33 3084 6

原创 高斯脉冲传播的解析解及其matlab求解

一、前言做CFD的气动声学仿真的时候,尤其是出于气动声学本身对高精度格式的需要,我们通常要将仿真的结果和解析解进行比较。而非线性偏微分方程的解析解几乎不存在(尚未发现)。所幸传统上气动声学的计算是用LEE(线性化欧拉方程)来计算的,在最下方的参考文献中Tam教授给出了求解的步骤以及解析解(本人才疏学浅,最早的出处没有发现),于是仿真的结果和解析解(精确解)的比较也就成为了可能。这篇博文记录我如何利用matlab计算声波(acoustic wave)在某一时间下的压力脉动。二、LEE(线性化欧拉方

2020-06-16 17:33:22 2964

原创 持续不定期更新:CFD&C++之不可压库埃特流(Coutte)的数值解(隐式克兰克-尼科尔森方法)

之前一篇https://blog.csdn.net/weixin_39124457/article/details/101038218用到的是显式方法,这次尝试用隐式方法解决不可压库埃特流的问题。资料参考《计算流体力学基础及其应用》第9章第一节,电子书可自行搜索下载。代码自己打的,可下载:https://download.csdn.net/download/weixin_39124457/...

2020-01-13 19:32:11 1645 1

原创 持续不定期更新:CFD&C++之拟一维喷管流动的数值解(2)

这篇博文将剩下的问题解决完。第一篇在:https://mp.csdn.net/postedit/101038218在初始化步骤之后,就到了计算下一时间步的步骤了。计算之前先讲一讲这里用到的计算方法:显式麦考马克方法。简单地来讲,显式意味着可以根据当前时间步的流场量去算下一个时间步的流场量。相对的,隐式则要用到下一个时间步的流场量,换言之要求解方程组,计算及其复杂。麦考马克方法是比较早期的十...

2020-01-11 17:03:00 1643 3

原创 持续不定期更新:CFD&C++之拟一维喷管流动的数值解(1)

前言:学习openfoam,或者准确来说,CFD,断断续续也有5个多月。3月底在本科学校写下的第一篇openfoam学习的博文,到现在在研一的学校里,尝试自己写代码计算cfd问题,慢慢一点一点地构建自己的自信心。其实说实话,学CFD很难,尤其是前期要战胜纯理论带来的「空虚」感,找到学习的落脚点。我不敢说现在的自己又足够的自信,但坚信「即使没有希望也要坚持下来」,终有一天会在学习中找到自我。...

2020-01-11 16:45:33 3899 2

原创 安装Openfoam的acoustic开源程序包libAcoustics

研究需要,从github上下载仅有的基于OpenFOAM的Acoustic程序,网址:https://github.com/unicfdlab/libAcoustics一开始我电脑上OpenFOAM的版本是v6的,编译程序包的时候终端显示缺少一些文件,于是问了问作者。对方回答说你的版本不对,于是我下载了他们最新的一个OpenFOAM-v1812的基础程序包OpenDTEF:https:...

2019-11-02 20:45:19 947

原创 C++ 实现数字黑洞

昨晚看了一篇公众号的文章:https://mp.weixin.qq.com/s/idzZVuncx3XPcQwEZ4C3cg上面有介绍数字黑洞“6174”,论坛上也有很多,大概的历史由来不在赘述,随便找一个数如“1314”,看下图足矣:其中,流程分两步,一步是自己输入一个数字不全相同的四位数(1111,2222等等的不要),由程序计算出数字黑洞;然后由程序随机出100个四位数,分别算数...

2019-08-20 11:04:45 4116

原创 openFoam4.0 学习记录(七):Tutorials之Lid-driven Cavity Flow (后续3-高雷诺数RAS计算)

5月21日刚刚回家,明天爷爷生日,在此祝他福如东海!今天按计划完成空腔流教程的最后一项——高雷诺数。在此之前,我所做的都只是低雷诺数下的层流。但在现实中,理想的层流是不存在的,更多的是湍流。这块硬骨头,最是难啃。话不多说,我按着userguide做一遍。这一篇的关键词:pisoFoam,RAS,k − ε 模型。首先将教程里面的案例复制到run目录内:runcp -r $FOA...

2019-05-21 21:38:43 1115

OpenFOAM的二维低速层流管道流动算例(泊肃叶流动)-case文件

OpenFOAM的二维低速层流管道流动算例(泊肃叶流动)-case文件,下载解压后,./Allrun运行。

2022-03-25

OpenFOAM低雷诺数圆柱绕流算例

用OpenFOAM进行低雷诺数圆柱绕流计算,里面是一整个算例文件

2021-09-08

CFD-OpenFOAM双马赫反射doubleMach算例

使用cfd开源软件OpenFOAM求解可压双马赫反射(doubleMach)算例,求解器为rhoCentralFoam。

2021-09-07

CFD一维Burgers方程求解程序

求解一维Burgers方程的代码,使用内含Roe格式、vanLeer格式等数值格式求解。初始场可设置斜波和阶梯波,输出dat格式文件可以用tecplot或matlab查看。

2021-09-07

CFD一维扩散方程求解程序

求解一维扩散方程的代码,使用内含中心格式求解。初始为三角波,输出dat格式文件可以用tecplot或matlab查看。

2021-09-07

CFD一维对流方程求解程序

求解一维对流方程的代码,使用内含一维迎风格式、二维迎风格式等数值格式求解。初始场可设置三角波和阶梯波,输出dat格式文件可以用tecplot或matlab查看。

2021-09-07

LES_Smagorinsky.zip

大涡模拟Smagorinsky模型相关文献

2021-01-06

圆柱表面压力系数.zip

本人博文:https://blog.csdn.net/weixin_39124457/article/details/109560777 对应使用的函数文件及输出图像。

2020-11-08

analytical.m

气动声学,高斯脉冲传播的解析解及其matlab求解。根据Tam给出的LEE(线性化欧拉方程)在特定的初始条件下推导出来的解析解,用matlab进行数值计算。

2020-06-16

不可压库埃特流隐式解法.zip

参考资料出自《计算流体力学基础及其应用》第9章第一节,根据其介绍,应用克兰克-尼科尔森隐式方法列方程,并用托马斯算法求解三对角矩阵方程组,得到的解与书本吻合。代码较简单,无文档介绍。

2020-01-13

nozzle.cpp

拟一维喷管流动数值解代码,运行环境vs2019,自己写的,代码段有注释。cellField类的定义在我的博客里有,直接复制粘贴到class.h就好。 https://blog.csdn.net/weixin_39124457/article/details/101038218

2020-01-11

SCS舵机c++例程

控制SCS舵机的C++文件,可略作修改以投入使用。控制SCS舵机的C++文件,可略作修改以投入使用。

2018-09-24

基于单片机的交通灯系统——下位机

基于单片机的交通灯系统,这是下位机的代码。通过接收来自上位机的串口信息,控制交通灯的亮灭以及数码管显示。

2018-08-19

基于单片机的交通灯系统——上位机

基于单片机的交通灯系统,这是上位机的代码,通过串行通讯与下位机(也是单片机)连接并控制其输出。

2018-08-19

89C52控制风扇程序--测速调速

课程项目,旨在控制风扇的转速,通过调节输出的PWM波占空比来控制风扇转速的快慢,用另外一个定时器作转速的反馈。

2018-08-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除