@Banbor 现在的网格水平停留在上面图示水平,没有加入建筑物。教程中似乎有个建筑风的案例:
/Tutorials/incompressible/simpleFoam/windAroundBuildings
要不试着和simpleFoam/turbineSiting的地形网格设置拼一下?
LuoS
帖子
-
-
@李东岳 code是个好东西啊,得想想怎么拟合曲线咯,谢谢李老师的参考案例啦
-
function1类型的描述中有这样一句话:
(https://www.openfoam.com/documentation/guides/latest/api/classFoam_1_1Function1.html)
恰好我需要根据一组离散数据点拟合曲线,并将其结果赋值给一个function1对象的变量。
问题:对function1对象如何进行描述中所述函数插值功能?有无参考案例?多谢! -
@李东岳 好嘞 ,谢谢李老师
-
@李东岳 比较显著的是一个角落上没有生成边界层,这个角的地形向下走得比较急,而且我的边界层是绝对高度的,不知道是不是因为这两个原因导致边界层生成时出了边界而出错。
在后续的相对高度边界层添加时,FeatureAngle也无法增加至180,若设为120,则在边界地形凹陷处未能添加上边界层。工程做法参考就是扩大边界范围,或者后续想办法做边界地形面平滑处理。 在一篇论文中,extrudeMesh方法生成的网格,顶面和地面形状一样,感觉不太好。 后续如果snappyHexMesh没法做得更好,就只好先用这套网格将就将就,再研究别人用blockMesh改的网格方法,或者研究一下将fluent meshing的网格(边界层+多面体的网格质量不错)转过来。
未生成边界层的角:
其他角边界层:
-
在用snappyHexMesh对复杂地形生成网格时发现下述问题,未能找到根除办法,还请有碰到过同样问题的朋友讨论讨论:
- 报错信息:
Determining displacement for added points according to pointNormal ... Detected 0 points with point normal pointing through faces. Reset displacement at 0 points to average of surrounding points. displacementMedialAxis : Smoothing using Medial Axis ... #0 Foam::error::printStack(Foam::Ostream&) at ??:? #1 Foam::sigFpe::sigHandler(int) at ??:? #2 ? in "/lib/x86_64-linux-gnu/libc.so.6" #3 Foam::medialAxisMeshMover::calculateDisplacement(Foam::dictionary const&, Foam::Field<double> const&, Foam::List<Foam::snappyLayerDriver::extrudeMode>&, Foam::Field<Foam::Vector<double> >&) at ??:? #4 Foam::medialAxisMeshMover::move(Foam::dictionary const&, int, Foam::List<int>&) at ??:? #5 Foam::snappyLayerDriver::addLayers(Foam::layerParameters const&, Foam::dictionary const&, Foam::List<int> const&, int, Foam::decompositionMethod&, Foam::fvMeshDistribute&) at ??:? #6 Foam::snappyLayerDriver::doLayers(Foam::dictionary const&, Foam::dictionary const&, Foam::layerParameters const&, bool, Foam::decompositionMethod&, Foam::fvMeshDistribute&) at ??:? #7 ? in "/home/lsfluid/OpenFOAM/OpenFOAM-10/platforms/linux64GccDPInt32Opt/bin/snappyHexMesh" #8 ? in "/lib/x86_64-linux-gnu/libc.so.6" #9 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6" #10 ? in "/home/lsfluid/OpenFOAM/OpenFOAM-10/platforms/linux64GccDPInt32Opt/bin/snappyHexMesh" 浮点数例外 (核心已转储)
2.处理过程:
更改snappyHexMeshDict中addLayersControls参数featureAngle从180到120,网格如下所示。大部分网格生成边界层,一个角落未生成边界层,若继续增加featureAngle将报上述错误。
3.期望:
* 知道上述错误缘由和其他处理方法;
* 希望能增大featureAngle,使地形曲面能全部添加边界层。 -
填坑,参考官方t13教程(没记错的话,反正题目有个stl,似乎只有这种方法)
-
经Gmsh论坛解释,Gmsh不支持该功能,建议用meshlab等软件先进行几何前处理。
弃坑,走人 -
Gmsh导入的stl文件为网格文件,经
gmsh.model.mesh.createGeometry()
可以转换为Gmsh的内置几何形式。目前需要对stl面进行切割,但Gmsh仅支持occ内核的布尔运算。所以想要请教一下有什么办法将Gmsh的内置几何转为occ几何,谢谢! -
根据t13.geo文件,在创建几何前必须依据角度对离散面进行分类,但我的stl文件近似平面,使用面分类,将角度设置为0,会导致内存暴涨,半天没有反应。所以请教一下各位大神:
1.在不使用面分类的前提下如何将近似平面的stl文件处理成几何曲面?(stl导入gmsh显示为网格,非实体)
2.若必须用面分类,有什么简单可行的操作方法?
谢谢! -
填坑:
疑似文件下载过程中会存在网络问题,建议自行下载文件并修改setup.py文件,过程如下:-
下载并解压gmsh-4.6.0.tar.gz
网址:https://pypi.org/project/gmsh/#files -
查看自己系统类型
在python中查看(该代码源自文件中的setup.py的代码)
import platform print(platform.system().lower()) print(platform.machine().lower())
-
手动下载对应的gmsh版本
网址:https://gmsh.info/bin
64位windows对应 http://gmsh.info/bin/Windows/gmsh-4.6.0-Windows64-sdk.zip
文件大小30M
将下载好的文件放到gmsh-4.6.0.tar.gz 压缩包/gmsh-4.6.0/gmsh-4.6.0/下 -
修改gmsh-4.6.0.tar.gz 压缩包/gmsh-4.6.0/gmsh-4.6.0/setup.py
删除第50行的 self._download()
删除第55行~60行的 _download(self) 函数 -
在终端切换目录至 X/gmsh-4.6.0/gmsh-4.6.0/ ,输入指令:
python setup.py install
备注:如果出现"the wheel package is not available"的提示,请安装wheel库
pip install wheel
- 重新开启终端,检查gmsh库是否可用
python import gmsh
没有异常证明可用
- 享受gmsh的python API吧,骚年!
-
-
直接用python会提示没有gmsh模块
pip install gmsh一直卡在using cached gmsh-4.6.0.tar.gz这一步
不确定gmsh的python接口如何使用 -
受版权影响,原来习惯用的ICEM不能再使用,对OpenFOAM自带的blockMesh和snappyHexMesh使用水平不够,无法应用于复杂模型的网格划分,所以想请教一下看有没有类似于ICEM、pointwise之类的开源网格软件,谢谢!
-
请问,simpleFoam中的SIMPLE和SIMPLEC算法有区分吗?
如果有,在什么文件下的什么指令进行区分?
另外,SIMPLER植入了simpleFoam吗?
谢谢! -
@东岳 谢谢东岳老师!
-
@cccrrryyy 哦哦,还有这种操作,谢谢您啦
-
fvSolution下有一段:
cache { grad(U); }
不知道什么意思
-
turbulenceProperties中object为RASProperties或turbulenceProperties有什么区别?
-
@Samuel-Tu 谢谢您的回答。
plot in line我在使用的时候发现有两个需求无法满足:一是似乎只能一条线;另一个是只能显示而不能输出数据,
我的目标是对流场中的几条线上的物理量进行对比。
最后采用了监控数据的方式,streamline导出的数据不知道为什么有些诡异--(一组出现并行核数次重复数据;三组线没感觉出来,最后的那一大堆不知道什么东东)。probes虽然在输入时需要输很多点,但至少最后能得到想要的数据。 -
在流场中创建一条线,并把这条线上的物理量(比如速度分量Uy)输出(文本形式)。
非规则形网格这样输出的话,如何给点呢? -
@东岳 谢谢东岳老师
-
openfoam的sqr是什么意思?和sqrt有什么关系?
-
问题找到了,是newFunction1下的TrainingExp.H文件中TypeName(" ");的内容没对上。
表现为:可用function1类型中包含相似名称的类型,边界条件与该类型存在字符偏差。
相关链接:https://www.cfd-online.com/Forums/openfoam-programming-development/133466-unknown-patchfield-type.html -
一、问题:新建边界条件或Function1时,编译通过,controlDict内挂载,但运行求解器时依然反馈unknow type
二、基础案例:CFD之道 “OpenFOAM|创建新的边界条件”,链接:https://mp.weixin.qq.com/s?__biz=MzIyMzE2NDM1OQ==&mid=2247487059&idx=1&sn=d94b950d6dd563ed078b2c70c0bff05c&chksm=e8232cfbdf54a5ed610d64ca8919158e060d31f9fdfcb7e6b34c103498591dd4a33616423f5c&mpshare=1&scene=23&srcid=&sharer_sharetime=1583195473662&sharer_shareid=e42d272394596eee9f9a52cce8c48637#rd
三、部分问题排除:1.新的边界条件编译通过;2.controlDict挂载了新的库文件;3.库文件名直接复制,不存在字符不匹配的错误。图片如下:
四、问题表示如下:
五、同类问题:1.挂载库,已排除
http://www.cfd-china.com/topic/2751/怎样在waves2foam中增加新的自定义波浪类型
2.提到关键字错误,已排除
http://www.cfd-china.com/topic/2675/openfoam定义新边界条件问题-通量边界/8
六、目前状况:请求支援 -
目前看过的几个教程会拿最典型的案例进行操作,当我想要更详细地了解某个求解器(比如simpleFoam)时,虽然找到了tutorials下相应的案例,但每个案例都是特殊的,不只是单纯的blockMesh+simpleFoam。其他的文件如何使用是个问题,更谈不上选择和自己感兴趣的内容相近的案例进行改造。官网上似乎没有直接找到相关的案例说明,所以想请教一下看有没有具体的案例说明和操作。
-
@东岳 谢谢东岳老师!
-
openfoamwiki中的fluent3DMeshToFoam提到mesh文件在Windows下生成的,转之前需要添加dos2unix fluent.mesh的命令,一些教程似乎没提到过这一步,我自己用不用这个指令好像没什么区别(都没有异常提示),因为openfoamwiki这一块基于openfoam 2.1版本,所以不确定后面是不是因为更新或者什么的不再需要dos2unix这一步了。
另外,教程中的checkMesh好像一般也不搞了,这个有什么习惯吗? -
@东岳 又出现了owner和neighbour的概念,以前还以为和i,j,k一样的概念,看来又有知识点需要补咯,谢谢东岳老师
-
初步想法是从定义、生成方式、数据传输等方面看看,但不太清楚有哪些资料可以参考,求教各位大神了。
-
谢谢李老师
-
看的好像有两种:1.把偏微分符号外的速度放到偏微分号里面成为U^2/2(原谅我打不出来公式);2.处理方式同线性的对流项,假定一个U为常数。
第一种方法能够接受,但会引起什么误差或不合理呢?不懂。第二种方法就感觉很别扭,老感觉哪不对一样。
等不得看算法,先抛出来请教一下。 -
@东岳 原来是连续方程的引用啊,谢谢李老师啦
-
-
《A Thorough Description Of How Wall Functions Are Implemented In OpenFOAM》一文2.6节描述了nutWallFunction,nutAtmRoughWallFunction中nutw公式与之相同,其他量有改变,我再看看。
-
文件来源:atmosphericModels/derivedFvPatchFields/nutkAtmRoughWallFunction
头文件描述:Description This boundary condition provides a turbulent kinematic viscosity for atmospheric velocity profiles. It is desinged to be used in conjunction with the atmBoundaryLayerInletVelocity boundary condition. The values are calculated using: \f[ U = frac{U_f}{K} ln(\frac{z + z_0}{z_0}) \f] where \vartable U_f | frictional velocity K | Von Karman's constant z_0 | surface roughness length z | vertical co-ordinate \endvartable
程序代码:
tmp<scalarField> nutkAtmRoughWallFunctionFvPatchScalarField::calcNut() const { const label patchi = patch().index(); const turbulenceModel& turbModel = db().lookupObject<turbulenceModel> ( IOobject::groupName ( turbulenceModel::propertiesName, internalField().group() ) ); const scalarField& y = turbModel.y()[patchi]; const tmp<volScalarField> tk = turbModel.k(); const volScalarField& k = tk(); const tmp<scalarField> tnuw = turbModel.nu(patchi); const scalarField& nuw = tnuw(); const scalar Cmu25 = pow025(Cmu_); tmp<scalarField> tnutw(new scalarField(*this)); scalarField& nutw = tnutw.ref(); forAll(nutw, facei) { label celli = patch().faceCells()[facei]; scalar uStar = Cmu25*sqrt(k[celli]); scalar yPlus = uStar*y[facei]/nuw[facei]; scalar Edash = (y[facei] + z0_[facei])/z0_[facei]; nutw[facei] = nuw[facei]*(yPlus*kappa_/log(max(Edash, 1+1e-4)) - 1); if (debug) { Info<< "yPlus = " << yPlus << ", Edash = " << Edash << ", nutw = " << nutw[facei] << endl; } } return tnutw; }
疑问:头文件描述中并未展示公式的来源,故无从得知该壁面函数的推导过程,更无法获知该壁面函数的适用条件。
求教:哪位大神知道这个壁面函数的来源吗?
备注:OpenFOAM初学,扒扒公式。 -
在.H文件中找到了:
Reference:
D.M. Hargreaves and N.G. Wright, "On the use of the k-epsilon model
in commercial CFD software to model the neutral atmospheric boundary
layer", Journal of Wind Engineering and Industrial Aerodynamics
95(2007), pp 355-369. -
对于atmosphericModels边界条件,想要阅读相关参考资料,如何查找?谢谢!
-
实际背景:在地形模拟中,已知一个网格中心点,需要获得该网格中心点沿高度方向(z方向)到达地形边时的位置点的坐标,如何在UDF中获取?
-
@东岳 如果能够通过代码让边界层网格按湍流模型和y+自行调整就好了
-
pointwise中,三组connector,AB、AC可以生成domain,BC生成一个空domain是什么情况?
-
1.非结构化网格的边界层可以确定y+吗?
2.若是根据第一层网格长度确定y+,那对于旋转部件,每个截面的速度不同,Re不同,y+相应的不同,这时候还能保证y+按自己的想法走吗? -
最近用pointwise中的非结构网格生成了一个风力机旋转域中的block,检查质量发现最小角度0.14,网格质量特别差,但目前只会调整domain的网格质量,block的没看到相关教程,有大神可以指导一下吗?谢谢!
-
@云风 主要是对方程和C编程理解较浅,想找个例子对照着改一下,代码中与fluent相关的可能就是fluent中变量的形式,比如说x,y,z是x[0],x[1],x[2]这样的
-
目前已经知道了标准壁面函数的公式,ansys fluent udf help中壁面函数udf案例,如果能有标准壁面函数的代码作为参考的话可能就能够对照着变更一下壁面函数了。谢谢支持!
-
@深海矿工 非常感谢您的回答,我在Fluent中已设定每个时间步都保存整支叶片zone的压力数据,后面再处理,缺点是数据会占较大的空间
-
1.如何获取这个几何形状,比如说截面轮廓线或带面;
2.如何检测力,Fluent检测器中检测力的对象仅为Zone -
@下里巴人 最近稍微试了一下均匀流下粗糙网格的3组试验,一组时间步长给定为旋转2度的时间,一组为0.2度,一组Fluent自调整。因为时间原因仅做了一小段时间内的对比(未达到稳定周期性变化),关注的两个物理量(一个轴向力,一个转矩)在三组试验中趋势几乎一致,数值误差小于3%.另外对一种非均匀流下的精细网格进行了同样的试验(同样时间较短),趋势几乎一致,但不如均匀流下趋势符合得那么好,误差在9%以内。
受时间限制,对比不严谨,仅作为前期考察 -
@下里巴人 我先试试吧,还不知道会有什么结果呢
-
@李东岳 这是以库朗数为1作为前提做的一个粗略计算,并未进行计算。
-
非常感谢各位的帮助,我现在计划一方面对比若干组时间步长对计算结果的影响,一方面寻求理论上的解释。
snappyHexMesh对复杂地形添加边界层报“浮点数例外 (核心已转储)”错误
对于function1对象,如何根据一组数据拟合曲线并返回插值?
对于function1对象,如何根据一组数据拟合曲线并返回插值?
snappyHexMesh对复杂地形添加边界层报“浮点数例外 (核心已转储)”错误
snappyHexMesh对复杂地形添加边界层报“浮点数例外 (核心已转储)”错误
snappyHexMesh对复杂地形添加边界层报“浮点数例外 (核心已转储)”错误
求助:近似平面的stl文件导入gmsh如何处理成几何曲面?
Gmsh的内置几何如何转换为occ几何?要使用occ的布尔运算
Gmsh的内置几何如何转换为occ几何?要使用occ的布尔运算
求助:近似平面的stl文件导入gmsh如何处理成几何曲面?
gmsh教程文件夹下的py文件如何应用?
gmsh教程文件夹下的py文件如何应用?
请问有哪些类似于ICEM、pointwiae的开源网格软件?
simpleFoam中的SIMPLE系列算法有区分吗?
fvSolution下的cache起什么作用?
paraview如何创建一条线,并把这条线上的物理量输出?
fvSolution下的cache起什么作用?
湍流特征文件中的object有哪些可选项,有什么区别?
paraview如何创建一条线,并把这条线上的物理量输出?
paraview如何创建一条线,并把这条线上的物理量输出?
openfoam的sqr是什么意思?和sqrt有什么关系?
openfoam的sqr是什么意思?和sqrt有什么关系?
unknown type这如何排除?
unknown type这如何排除?
某一个求解器下的案例在哪里有比较详细的说明?
mesh转换前还要dos2unix吗?
mesh转换前还要dos2unix吗?
继四面体和六面体网格后,又发现了多面体网格,那怎么去了解多面体网格呢?有哪些参考资料可以学习?
继四面体和六面体网格后,又发现了多面体网格,那怎么去了解多面体网格呢?有哪些参考资料可以学习?
对于非线性的对流项,目前有哪些离散方法可用?
对于非线性的对流项,目前有哪些离散方法可用?
请问在动量方程封闭的过程中,速度转置的梯度的散度为什么等于0?
请问在动量方程封闭的过程中,速度转置的梯度的散度为什么等于0?
关于nutkAtmRoughWallFunction中nutw公式的疑问
关于nutkAtmRoughWallFunction中nutw公式的疑问
对于atmosphericModels边界条件,想要阅读相关参考资料,如何查找?谢谢!
对于atmosphericModels边界条件,想要阅读相关参考资料,如何查找?谢谢!
在Fluent中如何用UDF获取某一点沿z方向到边壁位置处的点的坐标?
非结构化网格的边界层可以确定y+吗?
pointwise中,三组connector,AB、AC可以生成domain,BC生成一个空domain是什么情况?
非结构化网格的边界层可以确定y+吗?
PointWise中非结构网格生成的block如何改善网格质量?
fluent中标准壁面函数的代码是怎样的呢?
fluent中标准壁面函数的代码是怎样的呢?
Fluent如何检测叶片某个截面上的力随时间的变化?
Fluent如何检测叶片某个截面上的力随时间的变化?
边界层最小尺寸过小,此时非定常的时间步长应该如何设置?
边界层最小尺寸过小,此时非定常的时间步长应该如何设置?
边界层最小尺寸过小,此时非定常的时间步长应该如何设置?
边界层最小尺寸过小,此时非定常的时间步长应该如何设置?