@wjxhit 这不是网格的问题,是那个位置的粒子正好被注射在了两个cores的中间应该。不知道你具体用的什么注射方式,但只有移除那个粒子才能接着run。
zhe
帖子
-
并行计算报错 Particle initialised with a location outside of the mesh -
颗粒沉积为什么全都到了底面一个面上?@Jasper-0 你现在能堆积,是因为把youngsModulus系数增大从而增大了碰撞力。这会引起无法堆积的,你可以看你的结果,应该会一直蹦,因为排斥力过大。这个系数因材料而定,不能随便给。比如沙子大概e+06好像。碰撞力的大小需要在计算时调节需要的参数,不能改变粒子的物理属性。
-
MPPICInterFoam速度公式與interFoam用的一樣嗎?結果很不同.@郑学习 我思考了一下你的问题。我建议你先试一下不注入粒子,看看水流是否运动。如果运动,再添加一个粒子试试。如果不运动,那么你的Setfields应该是没设置对box的位置。你先试试水流。
-
在OpenFoam中有没有什么口令是使得内场速度overwrite as zero请问大家有没有遇到过多项流计算案例中内部场的速度量被zero覆盖的?谢谢
-
在interFoam中通过setFields设置水体速度,但结果没有@李东岳 不好意思啊,东岳老师,因为mesh还挺多,并且是我改动过的求解器,所以没发上来一起算算。因为我这个求解器是对比MPPICInterFoam加入了粒子模型。我一直没尝试过给案例里通过设置setFields里的速度,这次一试,发现不对。
我返回去用interFoam算了一下,水流没有问题了。我又用OpenFOAM自带的MPPICInterFoam算了一下,一样的设置条件。0时刻,setFields起到了作用,速度场没有问题。在第一个时间布长,速度全部归零了。看了压强,跟interFoam的结果完全不同。这两个求解器没有特别大的不同,只是在MPPICInterFoam里考虑了粒子的体积占比,但即使不注入粒子,也一样速度归零。不知道有没有谁看过MPPICInterFoam,这个在算水流时,有什么大的不同吗?谢谢
-
在interFoam中通过setFields设置水体速度,但结果没有@zhe 更新一下,setFields没有问题,之前没有看到0时刻的分布,发现setFields是工作的。只是从第二步,内部场流速全部变成了0。还在看哪里的问题,如果有类似的问题,希望可以讨论!
-
气液固三项流,耦合interFoam和DPMFoam可以实现吗?@星星星星晴 不好意思,一直在工作和学习两边忙,没有怎么来论坛。都还好,谢谢。至于openfoam的粒子追踪模型,都是不考虑粒子体积的,只是一个点。但在欧拉下计算NS方程,是考虑了粒子占网格的比值(这也不是考虑了体积)这只是考虑了由于粒子存在在网格,占据了原本流体的一部分体积,对计算流体造成了影响。总的来说,还是算的流,粒子只是一个源项。
-
在interFoam中通过setFields设置水体速度,但结果没有@李东岳 谢谢东岳老师回复。这个box里是包含一部分竖直方向上柱子的。我设置了水位高度和水流速度。水位高度没有问题,但是速度却没有。我的入射速度是一个codedFixedValue的log方程,但setFields里我给的是个定常流速。输出的结果是setFields只读了我的inlet的boundary condition,并没有给内部场设值。想问这会不会有关系?在setFields中默认值是(0 0 0), 但是读到inlet BC是,会不会因为不符,所以跳过?我看了setFields的计算方程,还是不清楚,只是说这是个包含边界和内部的负值。
-
在interFoam中通过setFields设置水体速度,但结果没有用interFoam模拟两相流绕柱的情况,单项流不行,处理不了液面抬升。但是在设置初始条件时,想要通过setFields设置水体的速度。都没有报错,run 也正常,但是结果从一开始,水体里的速度还是(0 0 0),并不是通过setFirlds设置的。不知道有没有遇到类似情况的朋友,请帮忙看看,谢谢。
-
关于MPPICinterFoam@郑学习 一直到毕业也没合作成功呢。不过,如果你有什么问题,可以在这里留言,我还是会尽力帮忙的。
-
MPPICInterFoam 中如何通过alphac得到alpha1和alpha2?@tens 没错,意见一致。欧拉场中计算的所有都是在单纯两相流中乘以alphac的作用。所以在计算alpha1和alpha2时,OpenFOAM仍然按照单纯两相流计算,从interFoam中照搬来的。
-
MPPICInterFoam 中如何通过alphac得到alpha1和alpha2?@tens 不好意思,我没看到。V1和V2是体积,因为咱们一直在说的是体积分数的问题。你的意思我是懂的,是很正统的三相流耦合。但在OpenFOAM的MPPICInterFoam中,不是通过真正的三相体积分数为1来处理的。并且OpenFOAM对粒子处理的本质就是忽略粒子的形态,体积,只考虑粒子对流体的作用力。
-
MPPICInterFoam 中如何通过alphac得到alpha1和alpha2?@tens 之前你说不是alpha1+alpha2=alphac. 而这个图里又表示V1+V2=Vc?
-
MPPICInterFoam 中如何通过alphac得到alpha1和alpha2?@tens 你的意思我明白,但是将alphac看做单位1是混淆了概念。alphac就是alphac,它是个值,并是有时不是1。这个操作在OpenFOAM中没有。在概念上来说,你说的通,我是认同的。但是在存在MPPICInterFoam中,这种把alphac当作1,是不存在的。alpha1一直以来都是占cell的体积分数,你所说的把alphac当作1,也不是不对,而是当作1,其实就是cell本身。
这里有人会迷糊,说那么alphac到底干啥用?它就是用来体现粒子占据一定体积后,对流体总体积造成了影响,不是来梳理alphac, alpha1, alpha2的关系的。
-
MPPICInterFoam 中如何通过alphac得到alpha1和alpha2?@jasper-0 MPPICInterFoam中考虑了体积分数是为了保证质量守恒。你举的例子,alpha1=0.5本身就是占据整个cell的体积分数。而乘以alphac后得到的是实际占据cell的体积分数(因为cell中被粒子占据了一部分)。所以,整个过程中,alpha1一直都是0.5(alpha2=1-alpha1=1-0.5=0.5)这样是符合算法的。而上述例子中最后的0.4+0.4+0.2=1。可是OpenFOAM对于alpha2的求解是通过1-alpha1. 0.4+0.4不等于1。
考虑一个简单的例子,只有粒子和水。alphac=1-theta=0.8。那么如果考虑了粒子的占比,那么水在这里就该是alpha1=alphac=0.8.那么在根据alpha1alphac=0.64?这个值是什么?
然而回到我说的没有考虑粒子占比,对于alpha1的值,一直是占据cell的,那么alpha1就该是等于1(alpha2=1-alpha1=1-1=0. 符合假设前提)。而在实际运动过程中,由于粒子占比,alpha1实际的流通量是alpha1alphac=1*0.8=0.8. 这里考虑了alphac的影响,但是跟alpha1本身的值没有任何关系。
我做了个最简单的验证,上下一共5个网格,最下面的放了一颗粒子。下面3个网格是水,上面是空气。得到的数据是
希望能帮助大家。
-
MPPICInterFoam 中如何通过alphac得到alpha1和alpha2?@jasper-0 不好意思,最近没看到回复。如果像你说的alpha1*alphac就是真实的体积分数,那么alpha1才应该是整个cell里的alpha1啊,否则不需要再去乘以alphac.
我之前怀疑过,MPPICInterFoam并不是像我们想象的那样,alpha1+alpha2+alpha_p = alphac + alpha_p = 1。而是按照interFoam的alpha1 + alpha2 = 1进行了两相流的计算。随后在动量方程和连续方程中,乘以alphac(这个值与lapha1和alpha2无关,而是用1-alpha_p来的)的效果,以保证真实流过的体积是考虑过粒子占比后的,也能解释方程右边加入的momentum transfer的力。所以可以说OpenFOAM目前做的三相流耦合,还是秉承了粒子在流体中不占体积来的(只是有相互作用力)。
以上如果有不对的,希望可以多交流,感谢! -
MPPICInterFoam中静置情况下水流沸腾@星星星星晴 @李东岳 @Tens 找到原因了。就像之前观测发现的现象,在粒子群和纯水的界限处流速和压强极强。问题是出在压力泊松方程上。MPPICInterFoam应该按着interFoam的连续方程,考虑alphac的影响。但目前MPPICInterFoam是按照单项流的DPMFoam的方程。ddt(alphac)这一项是造成水沸腾的原因。把现有的
surfaceScalarField Dp("Dp", alphacf*rAUcf); fvScalarMatrix p_rghEqn ( fvm::laplacian(Dp, p_rgh) == fvc::ddt(alphac) + fvc::div(alphacf*phiHbyA) );
改成:
surfaceScalarField Dp("Dp", alphacf*rAUcf); fvScalarMatrix p_rghEqn ( fvm::laplacian(alphacf*Dp, p_rgh) == fvc::div(alphacf*phiHbyA) );
这样就不会出现“无风自动”的现象了。是不是对别的地方会造成影响,还需要再研究。(其中出现的alphac*alphac是因为我的粒子浓度太高,不能忽略压力项。李东岳老师在其他帖子里也讨论过这个问题。根据自己的粒子粒径或占网格比来定。
-
MPPICInterFoam中静置情况下水流沸腾@星星星星晴 对,什么设置都没有。观察了流速和压强状况,在粒子堆与纯水的交界处最强烈。那个地方的不同就是由于粒子的存在,alphac会出现梯度。但是在动量方程里又找不到这一项东西。有没有想法,有几个猜想也是好的。先感谢!
-
MPPICInterFoam中静置情况下水流沸腾如题,在图中底下的凹槽里填满里粒子,红色为水域,蓝色为空气。在静置的状态下,水流会像开锅一样沸腾。有遇到过类似问题的同学吗?希望能指出问题所在,谢谢。
-
MPPICInterFoam 中如何通过alphac得到alpha1和alpha2?@jasper-0 理论上,是应该这样的。我有两个问题:第一,哪里提到alpha1和aloha2只是占连续相的比值?我们希望它只是占连续相比值,但code里并没有提过吧。我是怕先入为主了,因为确实对不上。第二,你对比的alpha1的求解公式,帮助很大。但从物理意义上来说,alpha1*alphac就是考虑了粒子影响后的求解方式?它俩相乘是啥意义啊?