MPPICFoam中颗粒分数的求解
-
这是求解粒子体积分数的公式:
theta[celli] += p.nParticle()*p.volume();
。但是,怎么才能得到nParticle? 这里的nParticle应该是每个cell里所含的粒子个数,这个值怎么才能得到?还有一点,这个code跟theta[p.cell()] += dt*p.nParticle()*p.volume();
的区别是什么?请大家给解惑一下,谢谢。 -
-
@zhe 在 MPPICFoam中颗粒分数的求解 中说:
dt
东岳老师说的没错,在你的constant中的kinematicproperties 中设置的,但是具体细节还要根据你的 injection model调整
比如你用的fixed,mass,以及number,在injectionModel中查一下如何设定的吧体积分数公式不是这个,这个是求每个cell中的particle 的体积和,下面的哪个 theta.primitiveFieldRef() /=mesh_.V 得到的才是体积分数,这个函数返回的theta才是体积分数
dt这些不知道是什么,在什么地方出现的啊? m3s?做一下量纲分析吧
-
@东岳 首先谢谢东岳老师的回复。您所提到的particle properties 里的nparticle代表的是每一个Parcel中含有的particle数量,是自己设定的。但在我上面提到的公式里。这个应该是每个cell里particle的数量吧?这个公式是每个cell里particle占的总体积,没错。我想算出每个cell里的体积浓度。不是需要知道这个theta值吗?
-
@星星星星晴 嗯,您说的对,下面的那个才是体积分数。想再请教一个额外的问题。在MPPICFoam中,粒子从一个cell转移到另一个cell中,是根据什么选择下一个cell的?这个算法应该在particle.C这个src文档里,但是因为我自己确实看不懂,所以才想问问论坛里的大家。是根据周围cell的浓度高低来选择,还是别的什么?希望您有时间一起讨论一下。谢谢🙏
-
@zhe 我不用MPPICFoam 所以我不太了解具体是否因为浓度,我确认的一点是根据速度*lagrangian time step。
这个是关于kinematic cloud的流程介绍,希望能帮到你
https://openfoamwiki.net/index.php/OpenFOAM_guide/UML/lagrangian -
@zhe 不太明白你的问题。如果你指的是“粒子是怎么移动的”,和运动相关的都要去
src/lagrangian/intermediate/clouds/Templates/KinematicCloud
中找。solve(TrackData& td)
函数中,从preEvolve()
到postEvovle()
的过程,就是粒子运动轨迹被求解的过程。每当粒子穿过一个网格时,粒子的所属网格信息都会被更新。如果你指的是如何判断处在cell face上的粒子属于哪个网格,可以参照这篇博士论文:
Kärrholm, Fabian Peng. Numerical modelling of diesel spray injection, turbulence interaction and combustion. Gothenburg, Sweden: Chalmers University of Technology, 2008.
OpenFOAM的粒子追踪算法就是这个人提出的 -
@白礼耕 感谢🙏。我就是想问的这个问题。之前没弄清楚怎么表达。现在知道在哪个位置,也就好知道怎么回事了。谢谢了
-
@星星星星晴 这个图,我研究过了,像下面一位朋友回答的,我表达的问题有错。不过,您的回答也让我拓宽了些我之前没想到的问题。谢谢。我也是刚接触不久,以后多学习了,希望也能为后来的人解惑。谢谢