请问各位前辈,有没有界面蒸发源项的模型啊,找了好多都是壁面成核的,因为要做的工况是在气液界面处产生相变,而不是壁面加热导致相变的,看了一些文章好像找到没有one-group下界面蒸发的模型
ZY-GONG
帖子
-
-
各位前辈,大佬们,最近在学习中遇到了几个问题希望各位前辈指教一下:
目前在大多数文献中我看到气液两相流中的曳力模型系数都是以下形式:
$k=\frac{3}{4}\alpha_d\rho_c\frac{C_D}{d_d}\left|U_c-U_d\right|$
但是最近学习文献的时候在核口的一些CFD代码文章比如SIMMER-III,AFDM,还有一些其他程序里出现了另外一种形式:
$k=A+B*\left|U_c-U_d\right|$
B项一般是跟$C_d$相关,在SIMMER-III中其形式为:
$B=\frac{1}{8}a_i\rho_cC_D,a_i是交界面面积$
而A项给出的解释一般是comes from Stokes law for viscous flow,形式一般是:
$A=\frac{3\alpha_c\mu_c}{d_d}$
比较好奇这种形式的曳力系数是怎么得到的,尤其是A项,在文献里也没看到相关的引用。
是否是由于这些代码一般是用来计算液态金属-气体两相流,因此比较特殊呢?
希望各位大佬不吝赐教,非常感谢! -
李老师在另一篇帖子有说过
https://cfd-china.com/post/11859 -
我记得setField是在求解器运行前用的吧,直接在setFieldDict指定好box以及相关变量,然后在算例文件下blockMesh setField xxxFoam这样用吧,如果单纯需要初始化场应该不用修改求解器来着吧,认识有限,说错了希望大佬们指正
-
这个是我想求解的方程形式,这段时间看了点相关东西,请问各位前辈,foam-extend里的blockMatrix能实现我想要的求解方式吗,然后就是曳力项应该OF里应该怎么写呢?是fvm : : Sp ( K, Ug ) - fvm : : Sp ( K, Ul )吗?希望各位大佬不吝赐教啊
-
请教各位大佬一个问题,两相流,在动量方程这块想处理相间作用力,OF我目前了解到的求解器是采用显式处理,
,但是我想做成隐式处理,弄成两个类似于a1Ul+b1Ug=c1,a2Ul+b2Ug=c2的矩阵,消元后再解线性方程组,这种有实现的可能吗,还是说这种应该做成迭代求解的模式呢?非常感谢!
-
已经没问题了
-
各位大佬,我想请教下关于EOS的事,我老师想让我弄一个算液态水密度的函数,我之前根据IAPWS97写了一个,但是发现在临界区算出来的密度跟实际好像差了很多,然后又看了下P-R eos,请问各位有这种根据p T计算水密度的相关资料推荐下吗
-
@李东岳 您的意思是在EEqn这里求解出的温度,他就默认是最终的正确温度是吗?然后在pEqn这里只是对质量速度压力密度这些的迭代求解,这里就相当于buoyantPimpleFoam里的比较EOS得到的rho和连续性方程的rho这个过程。
春节期间没啥事,或许我可以抽时间把openfoam中的算法拔出来。
期待!感谢李老师!
-
@李东岳 我的理解里,传质的过程应该伴随着能量的变化吧,求出正确的p后才能确定对应的温度这些?
能量方程右侧也有传质的源项,如果传质没求解的话怎么得到正确的温度呢
我的认识非常有限,如果错了请李老师批评指正! -
@李东岳
reactingTwoPhaseEulerFoam求解器的相变求解过程
李老师,我想请问下在org这边的multiphaseEuler,pEqn里既然考虑了传质,但是为啥找不到对能量进行的修正呢,从代码里似乎只能看到在EEqn求解后进行了thermo.correct(),是我理解有问题吗
还有就是能否请您大概提示下这个求解器的求解过程或者pEqn的迭代过程,万分感激! -
@李东岳 谢谢李老师,我先去找点相关的文章看一看吧
-
各位老师,前辈,我想学习下multiphaseEuler,或者是reactingTwoPhaseEulerFoam的算法,请问各位前辈有什么相关的文章可以推荐下吗?非常感谢
阅读了xiaopingqiu老师的博客,也看了东岳老师的reactingTwoPhaseEulerFoam的解析,有点疑惑,东岳老师写的连续性方程ddt(alpha,rho) + div(alphaRhoPhi) = 0
如果考虑传质的话,右侧为什么没有源项呢?
-
@zy-gong 好像确实可以,太惭愧了,总是问这种低级问题,学习之路任重而道远
谢谢李老师了 -
还是说这种也可以直接用lookupobject呢?
-
@李东岳
抱歉李老师,我重新组织下语言
以我有限的认识,因为求解器用的是heRhoThermo,无论是new()还是correct()似乎最后都会调用heRhoThermo::calculate()来计算热物性
而我想植入的一个气相的eos,需要的参数是液相的温度和气相的温度,大概就是rho(Tgas,Tliquid),植入eos的方法我大概已经掌握了,目前的想法是建立一个新的thermoType,newThermo的calculate()函数是用两个温度场作为参数来计算rho的,但是我目前不知道怎么在thermo里获取另一相的温度
假设液相的温度,我可以在多项欧拉求解器里通过fluid.phases()[0].T()来访问,那在newThermo里应该怎么做才能读到液相的温度场呢?
感谢李老师! -
目前在往OF里植入一些模型,因为在使用多项欧拉求解器,想植入一个EOS是根据气液两相的温度来计算气相的rho
现在想的方法是基于原有的heRhoThermo,弄一个user_lib,改一下原有的calculate函数,把rho(p,T),换成rho(T,T),但目前碰到的问题是我不知道该怎么在我的thermo里声明fluid.phase()[0].T()这个场
请问各位前辈,这种应该怎么写呢?或者各位前辈有没有更好的方法
感谢各位前辈的指教,万分感激 -
@李东岳 感谢李老师
-
@李东岳 李老师,我现在用.boundaryField()[patchi][facei]对边界进行赋值,总是提示我read-only,我需要用什么特定边界条件吗,或者是我的语句不对?
-
@zy-gong 哦哦我反应过来了,用mesh.oner()就可以了,打扰李老师了
-
@李东岳 是的,请问李老师这个语句该怎么写呢
-
请教各位大佬,我想给boundaryField上的面赋离这个面最近的网格的值,各位大佬有什么类似的语句可以供我参考下吗,如果用forAll算网格到面的距离的话,对于网格数多的例子会不会导致算的很慢呢
-
@李东岳 不好意思,李老师,再打扰您一下,我还有一个问题,我目前使用的是v10版本的multiphaseEulerFoam,我在dragModel里可以通过interface_.dispersed().d()这种来调用直径参数,现在我想在求解器的.c程序里调用它,应该用什么方式呢
我注意到您再小代码里提到过以下代码meanDiameter { type coded; libs ("libutilityFunctionObjects.so"); name error; codeExecute #{ const volScalarField& d = mesh().lookupObject<volScalarField>("d.alpha.oil"); scalar d32 = d.weightedAverage(mesh().V()).value(); if (Pstream::master()) { std::ofstream file; file.open ("d32", std::ofstream::out | std::ofstream::app); file << mesh().time().timeName() << " " << d32 << "\n"; file.close(); } #}; }
这段我是否能用呢
-
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
这似乎是啥通信协议的问题,就不打扰您了
-
@李东岳 好的谢谢李老师,我再仔细检查下,另外请问我现在打开paraview时候,总会提示个
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
但似乎不影响使用,我用的是v10版本,ubuntu是2204,然后paraFoam也安装不上
-
@李东岳 无粘,工质FLUENT那边用的是理想气体,OF这块我还没搞懂要怎么设置所以直接用的算例的physicalProperties,如下,刚用rhoCentralFoam跑了,1e-5s最大压力还是1.9e6
thermoType { type hePsiThermo; mixture pureMixture; transport const; thermo hConst; equationOfState perfectGas; specie specie; energy sensibleInternalEnergy; } mixture { specie { molWeight 28.9;//28.96; } thermodynamics { Cp 1005;//1004.5; Hf 0;//2.544e+06; } transport { mu 0; Pr 0.7;//1 } }
主要是之前做的1d的激波管符合的很好,2D就出现了这个问题
-
请教各位大佬一个问题,我用rhoPimpleFoam算一个2d类似激波管的案例,1m1m,网格5050,中心4*4网格压力为2MP,温度为485.6K,周围网格为1MP,温度为453.1K,速度为0,xy边界为0梯度,z为empty,其余参数与OF自带的激波管算例相同,时间步长取1e-7,我用OF计算出的结果,在1e-5s时压力最大值为1.9e6,师兄用FLUENT计算出的为1.5e6,请问是我的设置哪里有不对的地方吗?望指教!
FLUENT结果图如下: -
@李东岳 李老师我想请教一个问题,最近在多项欧拉Foam里植入了一个曳力模型,编译成功了但是求解动量方程的时候就会报错,我想请问这个报错的意思是我这pow函数没有用对吗?报错如下
PIMPLE: Iteration 1 MULES: Solving for alpha.air air fraction, min, max = 0.293333 0 1 MULES: Solving for alpha.air air fraction, min, max = 0.293333 0 1 Constructing momentum equations #0 Foam::error::printStack(Foam::Ostream&) at ??:? #1 Foam::sigFpe::sigHandler(int) at ??:? #2 ? in "/lib/x86_64-linux-gnu/libc.so.6" #3 ? in "/lib/x86_64-linux-gnu/libm.so.6" #4 powf64 in "/lib/x86_64-linux-gnu/libm.so.6" #5 Foam::pow(Foam::Field<double>&, Foam::UList<double> const&, double const&) at ??:? #6 Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::pow<Foam::fvPatchField, Foam::volMesh>(Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > const&, Foam::dimensioned<double> const&) at ??:? #7 Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::pow<Foam::fvPatchField, Foam::volMesh>(Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > const&, double const&) at ??:? #8 Foam::dragModels::bubbleDrag::CdRe() const at ??:? #9 Foam::dragModels::dispersedDragModel::Ki() const at ??:? #10 Foam::dragModels::dispersedDragModel::K() const at ??:? #11 Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::BlendedInterfacialModel<Foam::dragModel>::evaluate<double, Foam::fvPatchField, Foam::volMesh>(Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > (Foam::dragModel::*)() const, Foam::word const&, Foam::dimensionSet const&, bool) const at ??:? #12 Foam::blendedDragModel::K() const at ??:? #13 Foam::MomentumTransferPhaseSystem<Foam::phaseSystem>::momentumTransfer() at ??:? #14 Foam::PhaseTransferPhaseSystem<Foam::OneResistanceHeatTransferPhaseSystem<Foam::MomentumTransferPhaseSystem<Foam::phaseSystem> > >::momentumTransfer() at ??:? #15 ? in "/home/gzy/OpenFOAM/OpenFOAM-10/platforms/linux64GccDPInt32Opt/bin/multiphaseEulerFoam" #16 ? in "/lib/x86_64-linux-gnu/libc.so.6" #17 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6" #18 ? in "/home/gzy/OpenFOAM/OpenFOAM-10/platforms/linux64GccDPInt32Opt/bin/multiphaseEulerFoam" Floating point exception (core dumped)
我目前的想法是在主函数里输出一下这些场,然后逐个排查下哪里出了问题,请问这些场该怎么调用呢?直接info+场名行不通,我不大清楚这样的语句要怎么写,麻烦您指导一下,非常感谢,例如
Foam::dragModels::bubbleDrag::bubbleDrag ( const dictionary& dict, const phaseInterface& interface, const bool registerObject ) : dispersedDragModel(dict, interface, registerObject), residualRe_("residualRe", dimless, dict) {} // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // Foam::dragModels::bubbleDrag::~bubbleDrag() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // Foam::tmp<Foam::volScalarField> Foam::dragModels::bubbleDrag::CdRe() const { volScalarField TTT(interface_.continuous().thermo().T());:xiexie: TTT.dimensions().reset(dimless); const volScalarField g1(1-TTT/647); const volScalarField g2(max(g1, residualRe_)); const volScalarField g3(pow(g2, 0.98)); volScalarField ddd(interface_.dispersed().d()); ddd.dimensions().reset(dimless);
-
请问各位大佬,是否有phaseProperties设置教程呢?
of9中多相欧拉的算例,在constant/phaseProperties 中都要设置一个type;
已知的可选设置有:
basicMultiphaseSystem;
interfaceCompositionPhaseChangeMultiphaseSystem;
interfaceCompositionPhaseChangePopulationBalanceMultiphaseSystem;
populationBalanceMultiphaseSystem;
thermalPhaseChangeMultiphaseSystem;
thermalPhaseChangePopulationBalanceMultiphaseSystem.目前比较关心的是什么时候使用interfaceCompositionPhaseChangeMultiphaseSystem,什么时候使用thermalPhaseChangeMultiphaseSystem呢?这两者具体有什么不同呢?
还有就是blending相里,算例有时会设置传热和曳力的离散/连续分数设置,有时又不会,这是与传热和曳力的模型有关吗
万分感谢 -
@李东岳
已经看到了,非常感谢您 -
@李东岳
感谢您 -
@李东岳
问题解决了,似乎是WIN11的防火墙屏蔽了什么东西。。。我把防火墙关了公式就可以显示了
顺便请问一下,之前在您的网站上看过reactingTwoPhaseEulerFoam的解析,但现在找不到了,这些能去哪里找呢 -
@李东岳 手机不挂梯子是可以的,看来应该是学校服务器的锅了?
-
@李东岳
我初步估计可能是我学校这边本地服务器的原因?电脑挂了梯子也还是乱码,手机挂了梯子就是正常,但是同个地区另外学校的同学浏览您的网页的时候能就正常显示,太痛苦了
-
之前一直好好的,什么插件也没装过,只是最近浏览网页的时候,发现公式全乱码了
请问各位大佬知道我应该做点什么操作才能让公式正常显示吗,万分感谢!
现在我的网页如图
-
@bestucan
tucan老师您好,我寻找了OF中带有dispersed的文件,似乎还是找不到相关的代码。
我的认识里,似乎两相流的流型是根据某一相的体积分数来确定的,但是我在代码里没有找到相关的定义,请问您知道这方面的信息吗,能否指点一二?
万分感谢 -
@bestucan
非常感谢 -
刚刚学习这个求解器不久,有很多不懂得地方所以想向各位前辈请教请教一下
在我的理解中,气液两相流的流型应该分为三种:气泡流,液滴流和界面流
在MutliphaseEulerFoam中,似乎是通过phasePair这个类来实现相关功能的,但是我只找到了下边的这段代码,似乎是用来定义连续相和离散相的const Foam::phaseModel& Foam::phasePair::dispersed() const { FatalErrorInFunction << "Requested dispersed phase from an unordered pair." << exit(FatalError); return phase1_; } const Foam::phaseModel& Foam::phasePair::continuous() const { FatalErrorInFunction << "Requested continuous phase from an unordered pair." << exit(FatalError); return phase1_; }
但是看完还是一头雾水,也找不到其他使用dispersed()和continuous()这两个函数的地方,所以想请教各位前辈,MutliphaseEulerFoam在代码里是如何实现连续相与离散相的区分,并于三种流型对应的?
不胜感激!
聚并破碎的IATE模型
气液两相流曳力模型问题
OpenFoam DNS计算
关于setFieldsDict设置初始压力场问题
两相流动量方程求解的一点疑惑
两相流动量方程求解的一点疑惑
液态水的EOS
液态水的EOS
包含传热传质的两流体算法
包含传热传质的两流体算法
包含传热传质的两流体算法
包含传热传质的两流体算法
包含传热传质的两流体算法
如何在user_lib里使用OF中的变量
如何在user_lib里使用OF中的变量
如何在user_lib里使用OF中的变量
如何在user_lib里使用OF中的变量
对边界场进行赋值
对边界场进行赋值
对边界场进行赋值
对边界场进行赋值
对边界场进行赋值
关于2D激波管验证
关于2D激波管验证
关于2D激波管验证
关于2D激波管验证
关于2D激波管验证
关于2D激波管验证
关于调用 PtrDictionary<phaseModel> 类储存的场的数据
multiphaseEulerFoam中的phaseProperties中相关设置
问个CFD无关的,为什么最近浏览器上的latex公式显示不了
问个CFD无关的,为什么最近浏览器上的latex公式显示不了
问个CFD无关的,为什么最近浏览器上的latex公式显示不了
问个CFD无关的,为什么最近浏览器上的latex公式显示不了
问个CFD无关的,为什么最近浏览器上的latex公式显示不了
问个CFD无关的,为什么最近浏览器上的latex公式显示不了
MutliphaseEulerFoam中关于流型的问题
MutliphaseEulerFoam中关于流型的问题
MutliphaseEulerFoam中关于流型的问题
MutliphaseEulerFoam中关于流型的问题