如下图左边所示(channel395算例)
我初步的想法是对yplus在Y方向上采样取一条直线,输出的数据文件第一列就是y轴坐标,第二列就是Y+,这样完成了转换,但是考虑到这个是平均速度剖面,只取样一条线的Y+可能没有那么强的代表性,需要算yPlusMean好像也不太对,请教各位改怎么处理呢?
荷兰后腰阿贾克斯
帖子
-
请教各位速度剖面的横坐标怎么用Y+来代替Y呢? -
functionObjects导出数据没有内部值只有边界是caculated自我发这个帖子后我发现了几种可能的原因,供后来的Foamer参考吧
1、最一般的情况就是在自己的求解器(一般是修改过后的------这样才容易出这种问题),里面createFields.H文件未将值初始化,可以看到我在代码中以及给出了初始值,但是系统未识别,后将“SMALL”改成“VSMALL”才能适应v2012以后的版本。
当然你也可以在0文件中新建一个相关变量的文件,然后给它一个初始条件就行————简而言之,变量需要初始值。2、在加代码的时候声明了变量比如volVectorFields,
volVectorFields Uprime = ( U - Umean);
但是没有赋值这一步,所以系统没输出这个变量,要想输出的话在后面加一段Uprime111 = Uprime
,你就会在结果中得到一个Uprime111了。3、如果你的变量是通过运算得来的,那么有可能系统无法完成你的计算所以没结果,首先可以通过Debug的方法检查是哪一步计算算不出来,然后根据自己的情况进行更改吧,我这里报错还是SMALL在2012无法识别的问题。
祝好
-
单纯的grad梯度算子可以提取分量吗??我有点想法跟各位交流一下,看看这么处理行吗
$ \frac{\partial }{\partial x}\otimes U =\frac{\partial U }{\partial x}$
$ \frac{\partial }{\partial x} =\frac{\partial U}{\partial x}{U^\mathrm{ -1 }}$
总觉得哪里不太对劲啊
-
单纯的grad梯度算子可以提取分量吗??@李东岳 李老师我题目还是没说明白哈,是图一梯度算子的分量$ \frac{\partial }{\partial x}$,不是某个物理量的梯度分量$\frac{\partial f}{\partial x}$,后者就像您说的很简单,前者有办法吗?毕竟确实是从微分角度展示了Δx
-
单纯的grad梯度算子可以提取分量吗??@李东岳 老师请问您有什么想法吗
-
单纯的grad梯度算子可以提取分量吗??
梯度格式在OpenFoam中主要是俩,一个是高斯法一个是最小二乘法,这两个方法都可以很方便的得到grad(U)(eqn.26的左侧),但是文献里这样单单提取梯度算子grad的分量(Gx、Gy、Gz)能提出来吗?
看作者这意思是grad操作因为隐含了Δx、Δy、Δz的信息,也确实好理解,但是怎么在OF里提取没有头绪祝好
-
不知哪位大佬有ICEM 2021-linux版本么?@星星星星晴 您好,我也想下一个 ,请问可以在哪个网站下载到您保存的链接?
-
《无痛苦N-S方程笔记》勘误@warnerchang
好的谢谢你
@李东岳 -
《无痛苦N-S方程笔记》勘误不好意思我插一句想问一下,在《CFD中的大涡模拟》中,
方程(18)里面确定是D+1/3tr(D)吗?是不是应该是减号,因为我看OF里面的源代码给的是dev(D) -
functionObjects导出数据没有内部值只有边界是caculated各位好,我想在运行算例的时候输出LES的delta大小以及一些其他的SGS数据(最简单的就是Uprime=U-Umean)
我在cfdonline上找个帖子,但是代码看起来是2.X版本的,我将它放到CreateFields.H里面volScalarField LESdelta ( IOobject ( "LESdelta", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), mesh, dimensionedScalar("LESdelta", dimLength, SMALL) ); if (mesh.objectRegistry::foundObject<volScalarField>("delta")) { const volScalarField& delta = mesh.objectRegistry::lookupObject<volScalarField>("delta"); //LESdelta.internalField() = delta.internalField();原代码,4.0以后internalField这个功能被ref()取代了 LESdelta.ref()=delta;//修改的,感觉不太合适,至少编译不报错 }
导出的delta文件只有一个很小的内部值,边界是caculated,很明显数据没提出来
其次是Uprime,也是看这个帖子https://github.com/syavash20/TurbLab/tree/master/LESpimpleFoam
在creatFields设置了该量之后,Info<< "Reading field UMean\n" << endl; volVectorField UMean ( IOobject ( "UMean", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE ), mesh );
去.C文件加一句
UPrime = (U-UMean);
这个导出文件是内部场直接没有,直接uniform 0,边界条件是一堆caculated(已经按照文档所说先算一会给个初始的Umean场了)
所以为什么会没有数据呢? -
看个乐:renumberMesh后的魔性云图经过室友的启发,发现是无意中误操作先decomposePar再renumber之后就会这样了
-
请教:第三代涡识别方法Liutex的代码在linux中运行的问题@yfleung 请问是编译完成了把exe拷贝到case目录下直接运行就可以吗?不知道是不是版本太新了ReadingU之后直接崩溃了(Uheader已经改过来了)
-
看个乐:renumberMesh后的魔性云图做了个非常简单的槽道流,左边进右边出,如下图很简单
之前忘了谁跟我说renumberMesh一下可以加快运算速度,于是我在renumber之后重新算了一下,本意是想看会快多少,意外发现结果都不对了
结果还有点魔性, 要是故意的可能还有点说法,这个就算了,就是提醒大家renumberMesh慎重使用
-
涡量如何在代码中引用?@cresendo shur2015年的一篇文献,An Enhanced V ersion of DES with Rapid Transition from RANS to LES in Separated Flows
你也做DES吗? -
涡量如何在代码中引用?@李东岳 东岳老师您好,目前进展卡在速度的引入上
const volVectorField& U = momentumTransportModel_.U(); const cellList& cells = mesh.cells(); forAll(cells,celli) { const volVectorField& uCell = U[celli]; const volVectorField& vorticity = fvc::curl(uCell); ...
编译显示速度场无效初始化
error: invalid initialization of reference of type ‘const volVectorField& {aka const Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>&}’ from expression of type ‘const Foam::Vector<double>’ const volVectorField& uCell = U[celli];
所以 速度 该怎么正确引入到写的代码里呢?感激不尽!
-
涡量如何在代码中引用?@李东岳 感谢李老师的指点!
但是现在编译遇到的报错仍和之前一样,提示我no matching function for call to curlerror:no matching function for call to “curl(const vector&)” const vectorField& vorticity = fvc::curl(Ux);//how can i get the vorticity? in file......note:candidate:template<class Type> Foam::tmp::<Foam::GeometricField<Type, Foam::fvpatchField,Foam::volMesh>> Foam::fvc::curl(const Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh>&) curl ....other
速度Ux的引入是正确的吗?我该如何使其工作?
-
涡量如何在代码中引用?各位春节好~
我想在LESdeltas中植入个方程如下:
根据maxDeltaxyz改动了如下:(会报错)
void Foam::LESModels::TestDeltaxyz::calcDelta() { const fvMesh& mesh = momentumTransportModel_.mesh(); const volVectorField& U = momentumTransportModel_.U(); label nD = mesh.nGeometricD(); const cellList& cells = mesh.cells();//get faces list const pointField& pc = mesh.points();//get point coordinates scalarField hmax(cells.size()); forAll(cells,celli) { scalar deltaMaxTmp = 0.0; const labelList& meshPoints = mesh.cellPoints()[celli]; const vector & Ux = U.internalField()[celli];//不知道这么写对不对 const vectorField& vorticity = fvc::curl(Ux);//how can i get the vorticity? const vectorField& nv = (vorticity/mag(vorticity));//normal vorticity const vector nvi = nv[celli]; forAll(meshPoints, pointi)// i { label pointI = meshPoints[pointi]; const point& rn = pc[pointI]; vector ln = nvi ^ rn; forAll(meshPoints, pointj)// j { label pointJ = meshPoints[pointj]; const point& rm = pc[pointJ]; vector lm = nvi ^ rm; scalar tmp = mag(ln - lm); if (tmp > deltaMaxTmp) { deltaMaxTmp = tmp; } } } hmax[celli] = deltaCoeff_*deltaMaxTmp; }
关于涡量的引入有什么方法吗?以及我的循环方式可行吗?
我尝试加入fvc.h文件,想通过对速度求curl,但目前仍然无法使用,怎样写才能使它正常工作呢?祝好
-
如何给入口速度一个较厚的边界层而且边界层不会消失?@veen 感谢你给了我一点思路,我注意到原实验文献(Vogel1985)讲到会有个边界层增厚装置,靠的是蒸腾作用
我会尝试给这两个边界层加个温度场试试,希望依靠热气流的上升作用会使边界层稳定,如果有后续结果我会再上传 -
如何给入口速度一个较厚的边界层而且边界层不会消失?感谢东岳老师,不过这更让我搞不清论文里这个边界层为什么这么牢靠的附着在壁面上,完全不会消失
-
如何给入口速度一个较厚的边界层而且边界层不会消失?各位好,昨日胡老师在公众号上分享了一个后台阶的算例,我注意到实验数据(Vogel1985)表明在入口处上下各有一个1.07H厚度的边界层,而原算例只是给了个抛物线的速度,导致模拟和实验相比边界层差距较大,所以我想做一遍,我注意到Shur和Spalart在2015的文章
An Enhanced Version of DES with Rapid Transition from RANS to LES in Separated Flows——Mikhail L. Shur/Philippe R. Spalart
已经可以将边界层模拟出来了,但是我自己没有成功做出来这个边界层,所以来寻求大家的指点
Development of DDES and IDDES Formulations for the k-ω Shear Stress Transport Model 这篇文献讲到,
这个后台阶算例的入口条件是提前通过管道流动算出来稳态结果的
所以我画了个尺寸同入口的管道,使用codedFixedvalue设置,设置中间雷诺数28000(速度11.3),边界层雷诺数3370(速度1.4),
(雷诺数同文献一致,入口条件就是if 给个1.4m/s,else if 给11.3m/s),结果如下
很明显这个边界层很快就没了,无法作为后台阶的入口条件,如何才能做到像Shur文章里一样的边界层这么稳定持久呢?