@yfclark 非常感谢。
zwl
帖子
-
-
请问paraview能够统计网格数吗?比如液相体积分数在0.5-0.6的网格数有多少。或者其它软件或者程序能够计算出来的方法,有了解的大神指点下,谢谢。
-
@玉玺 有可能是湍流模型选择的问题,你可以试试其它湍流模型,另外,这是用于多组分的,不但要设定相体积分数,还要设定组分的质量分数场。
-
@玉玺 因为我不做反应,后来就没有深究,不好意思,我也给你不了其他建议了。
-
我记得这是求解器设定的限制,好久没用那个了,具体忘了。建议你具体看一下模型,我当时的设置就是跟所选模型不符。
-
是的,求解器自带的是蒸发,我想计算空化,二者的计算原理大不相同,我更改了质量源相,导致质量分数越界。
-
@东岳 我看MULES代码,感觉他就是为求解相方程定制的,没有扩散相的处理,所以我不知道这里的扩散相放在哪个位置,怎么处理。
-
@东岳 那么下面带拉普拉斯项的组分输运方程如何采用MULES求解呢?谢谢。
fvm::ddt(alpha, rho, Yi) + fvm::div(alphaRhoPhi, Yi, "div(" + alphaRhoPhi.name() + ",Yi)") - fvm::laplacian ( fvc::interpolate(alpha) *fvc::interpolate(this->muEff()/Sct_), Yi ) == alpha*this->R(Yi) + Source + fvc::ddt(residualAlpha_*rho, Yi) - fvm::ddt(residualAlpha_*rho, Yi)
-
@yfclark 非常感谢你的建议。源相我确实是直接添加的,没有再做处理,这个Sp会有什么作用(虽然有时我也会模仿着这样处理)?越界的主要原因是什么?
-
@东岳 对,就是自带的Y方程。
-
@东岳 非常感谢东岳老师的回答,我有个疑问,这个求解器是可以算蒸发的,而且用的就是界面组分,他们是怎么处理的呢?就避免了越界。
-
reactingTwoPhaseEulerFoam求解器的组分输运方程中添加质量源相导致质量分数无界,这是什么原因,为什么没添加源相之前有界呢?如何处理才能避免质量分数远大于1?
-
@yfclark 源相是需要加到压力泊松方程里面,当然由于源相的产生导致的动量源相和质量源相也要加到对应方程中的。不设置任何东西应该是不考虑曳力模型的。不清楚你要怎么加拉格朗日模型,为什么不考虑相间曳力?
-
@东岳 那跟商软的层流模型有区别吗?商软也是这样?谢谢!
-
@Hungryandfool 刚才发错了,我用的社会上的超算,0.1元每核时,我们学校也是这样的。价格基本都一样。
-
@zwl 刚才发错了,我用的社会上的超算,0.1元每核时,我们学校也是这样的。价格基本都一样。
-
@队长别开枪 非常感谢,我看了redistributePar的help,看到这个命令选项里确实有并行,我研究下怎么用。
-
@队长别开枪 非常感谢,我看了redistributePar的help,看到这个命令选项里确实有并行,我研究下怎么用。
-
@dzw05 不知道你说的直接处理是在processor路径下直接paraFoam吗?这样只能看到分得这一块网格数据,而我要看整体结果,怎么操作?有相关资料吗?求分享,谢谢。
-
请问下东岳老师,openFoam里面的求解器如果选成层流,是不是都是直接求解动量方程?可以作为直接数值模拟求解器?
-
并行计算的结果,不进行reconstructPar,用什么软件能整体处理?reconstructPar是单核运行,大网格下运行很慢,特别是在超算上,极其浪费资源,大家都怎么处理的?
-
相方程和压力方程的源相均是类似interPhaseChangeFoam的源相添加方式添加,能量方程是按照质量传递乘以相应的焓,但是在求解过程中,一旦发生相变,焓方程或者迭代求温度就会发散。(我并没有按照本求解器原有的蒸发模型添加,因为相变原理不同)要以什么样的数值方式处理才能解决这个问题呢?有经验的专家能给些建议吗?@东岳
代码如下:E1Eqn = ( E1Eqn == *heatTransfer[phase1.name()] +(fluid.mDotAlphal()[0]*limitedAlpha2+fluid.mDotAlphal()[1]*limitedAlpha1)*phase2.thermo().he() + alpha1*rho1*(U1&g) + fvOptions(alpha1, rho1, phase1.thermo().he()) ); E1Eqn->relax(); fvOptions.constrain(E1Eqn.ref()); E1Eqn->solve(); } } { tmp<fvScalarMatrix> E2Eqn(phase2.heEqn()); if (E2Eqn.valid()) { E2Eqn = ( E2Eqn == *heatTransfer[phase2.name()] -fvm::Sp((fluid.mDotAlphal()[0]*limitedAlpha2+fluid.mDotAlphal()[1]*limitedAlpha1)*2, phase2.thermo().he()) +(fluid.mDotAlphal()[0]*limitedAlpha2+fluid.mDotAlphal()[1]*limitedAlpha1) * phase1.thermo().he() + alpha2*rho2*(U2&g) + fvOptions(alpha2, rho2, phase2.thermo().he()) ); E2Eqn->relax();elax();
-
@东岳 那为什么reactingEulerFoam选LES/kEqn还是不能用于有相场为0的条件?您说的of已经给我处理好了是指?我正想去看个究竟,谢谢。
-
@东岳 为什么会加湍流时要防止相场接近于0?还请东岳老师明示,这是哪部分数值处理出现的问题?如果物理情况确实是有相场等于零的情况,那这个求解器就不能选择LES/kEqn模型来求解湍流了,对吗?
-
@yfclark 是50微米,根据文献实验数据取值,这个目前我还没见到有做动态直径的,而且这个直径还很少有相应理论计算,如果你见到相关理论,请分享一下~
-
@东岳 reactingMultiphaseEulerFoam求解器之前尝试用过,自带的算例全是层流的,没用湍流模型,我添加湍流模型后湍流方程矩阵求解不收敛,尝试多次没成功后,就没用了~如果有哪位用reactingMultiphaseEulerFOam求解器选择LES模型运行成功,请分享下,谢谢~
-
@金石为开 假期出去了,才看到。我没研究过升力模型,不过我感觉你可以找现成的升力模型加到动量方程里,或者加到压力泊松方程里。
-
@东岳 出口是空气场,感觉空气的温度场没问题,所以就没截出来,就是水喷到空气里,空气cpMcv=R,而液体的为0.所以焓算出来的液体温度随压力变化那么大,我感觉有问题?东岳老师觉得呢?
-
@东岳 好像东岳老师之前用twophaseEulerFoam,不知道有没有遇到过这个问题?能解答一下吗?谢谢。
-
这是温度场云图;
利用reactingTwoPhaseEulerFoam计算两相流动,利用perfectFluid模型计算液体压缩性,thermo选择hConst,能量方程对应sensibleEnthalpy,定入口温度,入口液体体积分数为1,入口压力10MPa,出口压力1MPa,这个计算结果有两个问题:
1.根据所选模型代码,温度不应该随压力变化,计算结果为什么却显示受压力影响?
2.在温度受压力影响的基础上,为什么入口温度会出现那么大变化?给的定温入口边界温度对应的不是入口压力?
请各位做可压缩求解器的大佬赐教,指点一二,这是什么原因导致的呢?先行谢过。 -
@气固两相流 我的意思是paraview并行,并不是计算时的并行,计算完我肯定会重构的,数据大,paraview处理数据卡,想问paraview如何并行处理数据。
-
@nbyjn vof类求解器只求解单动量方程,假设所有相速度是相同的,因此只有一个速度。of里只有多流体模型和双欧拉模型是考虑了每相的速度的。
-
@浪迹天大 谢谢,之前看过,忘了,重看一遍,收获不小。
-
这个更贴近些吧,不过也不全,杂七杂八看了不少,似乎快有眉目了。
http://xiaopingqiu.github.io/2016/06/25/thermophysics1/ -
@东岳 其实我也不带化学反应,只是多组分,有相变。那我先研究研究,趟趟路~
-
@东岳 我知道它的意思是初始化,可我想知道这个表示方法怎么来的,它的具体实现在哪?
东岳老师了解多组分的物性计算流程吗?单组分物性到混合物性的计算过程,有大致流程就行,具体细节我可以自己去看,我的思路现在断了一块,能给些提示对我的帮助会很大,谢谢。 -
现在在解析reactingTwoPhaseEulerFoam求解器,因此以此为例说明求助问题:
研究气液两相,液相为纯相,气相包含空气和蒸汽。
那么我的问题是求解器内直接给的是气相的物性(应该是混合物性,比如密度等),但是每个组分在字典里都单独给了状态方程参数,我猜想会先单独求解各组分物性然后再混合,仔细看了两天代码,求解器看了一遍,热物性库也看了不少,就是没发现在哪进行的混合计算。看求解器感觉求解器里获得的直接就是混合的,看热物性库,感觉求的是每相的单组分的。中间的过度始终没找到。
另外在rhoThermo里调用状态方程里的密度,和可压缩性是这样的:rho_ ( IOobject ( phasePropertyName("thermo:rho"), mesh.time().timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), mesh, dimDensity ), psi_ ( IOobject ( phasePropertyName("thermo:psi"), mesh.time().timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), mesh, dimensionSet(0, -2, 2, 0, 0) ),
thermo:rho是在哪定义的,没看到。。。
请研究这方面的各位CFDers指点、赐教、相互交流,谢谢。 -
OpenFOAM中的方程类为fvMatrix,该类为一个基于有限容积的稀疏矩阵类,更确切的说它是一个类模板。对于定义标量方程 fvMatrix<scalar>,也可以写成fvScalarMatrix,两者一样,因为openfoam运用了 typedef进行了类型别名定义
typedef fvMatrix<scalar> fvScalarMatrix ; //标量
typedef fvMatrix<vector> fvVectorMatrix ; //矢量
fvMatrix中有两个基本变量A 和 b初始化为0,用以存储系数矩阵A和右边值b。 -
@东岳 懂了,谢谢。
-
@东岳 代码如下:
tmp<fvScalarMatrix> pEqnComp1; tmp<fvScalarMatrix> pEqnComp2; // Construct the compressibility parts of the pressure equation if (pimple.transonic()) { if (phase1.compressible()) { surfaceScalarField phid1 ( IOobject::groupName("phid", phase1.name()), fvc::interpolate(psi1)*phi1 ); pEqnComp1 = ( phase1.continuityError() - fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1) )/rho1 //相方程可压缩部分 + correction ( (alpha1/rho1)* ( psi1*fvm::ddt(p_rgh) + fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh) ) ); deleteDemandDrivenData(pEqnComp1.ref().faceFluxCorrectionPtr()); pEqnComp1.ref().relax(); }
if (phase1.compressible()) { phase1.divU(-pEqnComp1 & p_rgh);//divU(divU_)函数返回自身参数 }
// Construct the dilatation rate source term tmp<volScalarField::Internal> tdgdt; if (phase1_.divU().valid() && phase2_.divU().valid()) { tdgdt = ( alpha2() *phase1_.divU()()() - alpha1() *phase2_.divU()()() ); }
如此看来是不是dgdt1=alpha1* alpha2* dgdt2* p_rgh?难道我还有遗漏?
-
@zwl 在 reactingTwoPhaseEulerFoam求解器的相变求解过程 中说:
dgdt1=alpha1alpha2dgdt2p_rgh
乘号漏掉了:dgdt1=alpha1 * alpha2 * dgdt2*p_rgh
-
@东岳 对,您说的是对的。那我这样表达下我的意思吧:
reactingTwoPhaseEulerFaom的dgdt这里叫dgdt1;compressibleInterFoam里的dgdt这里叫dgdt2;我根据代码解读看到dgdt1=alpha1* alpha2* dgdt2* p_rgh,而且我感觉dgdt1应该定义成alpha1* alpha2* dgdt2才对,膨胀率乘以压力的处理和意义是公式里没有的,所以我才一直有疑惑。不知道我说明白了没有。 -
@东岳 那么从物理角度应该怎么理解呢?dgdt*p_rgh什么物理意义?应该不只是体标量场这么简单吧。非常感谢东岳老师耐心的回复。
-
@东岳 今天仔细推导了可压缩两相方程,基本都能与代码都能对的上,pEqnComp代表的就是可压缩项与质量源相的和,但是为什么要返给相方程pEqnComp与p_rgh的积?这跟您之前分析的其它可压缩求解器也不一样?能分析下为什么这么处理吗?公式中没有质量源相,相方程可压缩部分与压力的关系,这样处理的目的和原理是什么?谢谢。
-
@东岳 非常感谢,之前一直以为这些值都是在类之间传递,赋值大部分都是在类内部完成,却忽略了压力方程内进行赋值进而用来求解相方程,技巧性确实不错。
-
@东岳 非常感谢东岳老师的指点,去看了压力方程后确实发现在压力方程里考虑了质量传递,但我有一点不明白,相方程是先求解的,相方程里不给质量源相,那体积分数分布怎么保证是对的?对不起,也许这是简单的问题,但我对方程的求解细节不太清楚,还请解答一下。谢谢。
-
从reactingTwoPhaseEulerFoam求解器的介绍和给出的算例可以看出,该可压缩求解器可通过组分输运方程考虑两种组分以上的多相流问题。通过看该求解器代码,我发现质量源项只出现在了组分输运方程中,而相方程中没有源项,不论是蒸发还是沸腾液相和气相都有质量交换,那么该求解器是通过什么方式考虑相间质量传递的呢?如有熟悉该求解的高手,闲暇之余,还请指点一二,捅破这层窗户纸~,先行谢过!
-
@东岳 谢谢东岳老师。不是,现在我的问题是新加的状态方程不知道添加到哪个file里去编译;举个例子:我要添加一个PengRobinsonLiquid的状态方程,首先我复制PengRobinsonGas文件到它所在的文件夹(所有的PengRobinsonGas改名为PengRobinsonLiquid,先不改方程定义),下一步就可以编译了吧,但是我没有找到已经存在的状态方程的.C文件名在哪个make文件夹下的file里,那我就不知道我应该把PengRobinsonLiquid.C文件名添加到哪个file里,编译到哪个库里面去。不知道我说清楚了没有,还请东岳老师再次解答一下,谢谢。
-
specie文件夹下的equationOfState文件夹里的状态方程的.C文件没发现出现在哪个file里,那状态方程是怎么被编译的呢?又在哪个库文件里呢?有知道的CFDers请指教~谢谢。
-
@liuzh fluent里的跟OF里面的不一样,fluent欧拉欧拉下的VOF是界面重构(可以在离散格式里看到),那么在界面处就是VOF方法(求解单动量方程),非界面处采用欧拉欧拉方法;而OF里面计算域内都是欧拉欧拉方法,所谓的界面也是一个区域,只不过被压缩的锐利了而已。
paraview数据后处理
paraview数据后处理
组分输运方程出错
组分输运方程出错
组分输运方程出错
reactingTwoPhaseEulerFoam求解器的组分输运方程中添加质量源相导致质量分数无界
reactingTwoPhaseEulerFoam求解器的组分输运方程中添加质量源相导致质量分数无界
reactingTwoPhaseEulerFoam求解器的组分输运方程中添加质量源相导致质量分数无界
reactingTwoPhaseEulerFoam求解器的组分输运方程中添加质量源相导致质量分数无界
reactingTwoPhaseEulerFoam求解器的组分输运方程中添加质量源相导致质量分数无界
reactingTwoPhaseEulerFoam求解器的组分输运方程中添加质量源相导致质量分数无界
reactingTwoPhaseEulerFoam求解器的组分输运方程中添加质量源相导致质量分数无界
TwoPhaseEulerFOAM的一些小问题
看完东岳老师写的DNS案例的疑问。
并行计算的结果,不进行reconstructPar,用什么软件能整体处理?
并行计算的结果,不进行reconstructPar,用什么软件能整体处理?
并行计算的结果,不进行reconstructPar,用什么软件能整体处理?
并行计算的结果,不进行reconstructPar,用什么软件能整体处理?
并行计算的结果,不进行reconstructPar,用什么软件能整体处理?
看完东岳老师写的DNS案例的疑问。
并行计算的结果,不进行reconstructPar,用什么软件能整体处理?
reactingTwoPhaseEulerFoam添加空化模型,发生相变时焓方程或者迭代求温度发散
欧拉-欧拉-VOF混合方法
欧拉-欧拉-VOF混合方法
欧拉-欧拉-VOF混合方法
欧拉-欧拉-VOF混合方法
欧拉-欧拉-VOF混合方法
可压缩求解器温度场计算结果疑问
可压缩求解器温度场计算结果疑问
可压缩求解器温度场计算结果疑问
paraview并行出错
请问对于两相流模型 怎样用paraview只画其中一相的速度场
OpenFOAM多组分返回热物性
OpenFOAM多组分返回热物性
OpenFOAM多组分返回热物性
OpenFOAM多组分返回热物性
OpenFOAM多组分返回热物性
fvVectorMatrix与fvScalarMatrix有什么区别?
reactingTwoPhaseEulerFoam求解器的相变求解过程
reactingTwoPhaseEulerFoam求解器的相变求解过程
reactingTwoPhaseEulerFoam求解器的相变求解过程
reactingTwoPhaseEulerFoam求解器的相变求解过程
reactingTwoPhaseEulerFoam求解器的相变求解过程
reactingTwoPhaseEulerFoam求解器的相变求解过程
reactingTwoPhaseEulerFoam求解器的相变求解过程
reactingTwoPhaseEulerFoam求解器的相变求解过程
reactingTwoPhaseEulerFoam求解器的相变求解过程
热物性的状态方程在哪编译的?
热物性的状态方程在哪编译的?
欧拉-欧拉-VOF混合方法