DPMFoam injectionModels 中初始速度 U0
-
各位大佬好,
本人在模拟Diaz bubble column时,在kinematicCloudProperties里的injectionModels中给定如下代码,
在给定parcelsPerSecond后,颗粒入口的速度理论上来说应该等于parcelsPerSecond*颗粒体积/入口面积,但是不知道此处U0的作用是什么,我改变U0的值从0到100m/s 发现结果只有微小的差异。因此想知道U0的作用是什么?应该如何给定U0的值呢?还望大佬指点一二!
下图为U0为1m/s和100m/s时水相的速度分布
-
U0的作用应该是微乎其微。因为这个U0的速度进来之后,直接就被drag force改变了。另外云图其实看的不准确。你可以对比一下线图。
-
@李东岳 谢谢李老师的回复,我做了速度矢量图,能看出来有微小的差异。但我想知道颗粒从入口进来的速度不是应该通过 parcelsPerSecond颗粒体积/入口面积 得来的吗?如果按U0进来的话,那进来的颗粒数是不是变成parcelsPerSecond=U0入口面积/颗粒体积 了?但通过对比U0=1 和100 我发现,入口的速度主要跟设置的parcelsPerSecond有关,就是不知道U0起了个什么作用。。。
-
@jasper-0 在 DPMFoam injectionModels 中初始速度 U0 中说:
parcelsPerSecond颗粒体积/入口面积 得来的吗?
这是计算的粒子数量。U0是粒子进来的初始速度。这种流动主要是drag决定的速度。你给U0=0也可以。
-
@李东岳 感谢李老师的解答,我发现模拟气泡的话确实主要跟曳力有关。U0 主要取决于颗粒的性质,刚改了颗粒密度为2500模拟固体injection,发现U0 的改变对结果影响很大,现在有了基本了解了
-
U0 就是parcel的初始速度。
因为你现在用的是气泡,parcel的密度远远小于周围流体的密度,如东岳大佬所说,在计算drag的时候就直接给处理掉了。所以你才能发现改变颗粒密度为2500以后就影响很大。而且你也要看你是2-way 还是1-way。
如果你只是1-way倒还好,影响不大,因为只有fluid to parcel,
如果你要考虑2-way的话,parcel to fluid 就是个问题了。@jasper-0 在 DPMFoam injectionModels 中初始速度 U0 中说:
颗粒入口的速度理论上来说应该等于parcelsPerSecond*颗粒体积/入口面积
parcel的入口速度就是U0只是在你射入以后,就被couple了
injection model
- 选择喷射模型
- 初始化: 什么时候开始喷射,喷射的总数量,总体积(flowrate 时间积分),根据parcelbasisbasistype计算nParticle,这些影响到你的总flow rate
- 设置 injection position and cell
- 设置parcel properties: 速度和parcel直径
-
@星星星星晴
感谢大佬的悉心解答!我现在改用patchFlowRateInjection,但是对于parcelConcentration的定义不是很明确,以下是我的代码。我看了下PatchFlowRateInjection.H,发现定义为 Parcels to introduce per unit volume flow rate m3 [n/m3],这意思是不是说每进来1立方米水携带多少个粒子?比如我的流量为0.001 m3/s,每秒携带10个粒子,那parcelConcentration是不是应该是10000?injectionModels { model1 { type patchFlowRateInjection; phi alphaPhi.water; patch inlet; duration 10; SOI 0; parcelBasisType fixed; massTotal 5.257e-3; nParticle 1; concentration 1; parcelConcentration 21220659079; sizeDistribution { type fixedValue; fixedValueDistribution { value 3e-4; } } }
-
@李东岳
李老师好,我发现一个问题,还是对于Diaz bubble column这个算例,压力p的边界条件设为如下:internalField uniform 1e5; boundaryField { ".*" { type fixedFluxPressure; phi phi.water; value $internalField; } }
然而在计算结果中并没有得到静水压力,上下面的水压差只有5.2,感觉是用空气密度算出来的压力差,这应该对计算结果会造成影响吧? 是不是DPMFoam只能应用于空气为连续项的情况啊?
-
@jasper-0 不好意思,我没用过这个injection model,我建议你要是有功夫就研读一下injection model 的具体喷射方式和计算过程,这个东西完全能用手算的。这样你才能知道到底哪一项对你喷射的颗粒有什么变化。
大致看的样子这个parcelconcentration 影响到的是你喷射parcel 数量。template<class CloudType> Foam::label Foam::PatchFlowRateInjection<CloudType>::parcelsToInject ( const scalar time0, const scalar time1 ) { if ((time0 >= 0.0) && (time0 < duration_)) { scalar dt = time1 - time0; scalar c = concentration_.value(0.5*(time0 + time1)); scalar nParcels = parcelConcentration_*c*flowRate()*dt; Random& rnd = this->owner().rndGen(); label nParcelsToInject = floor(nParcels); // Inject an additional parcel with a probability based on the // remainder after the floor function if ( nParcelsToInject > 0 && nParcels - scalar(nParcelsToInject) > rnd.globalScalar01() ) { ++nParcelsToInject; } return nParcelsToInject; } else { return 0; } }
-
@星星星星晴 多谢大佬,不好意思刚看到,通过代码看确实是喷射parcel数量