关于网格内particle的平均速度求解
-
大家好,如题,想要得到网格内的平均速度。我编写的是类似这样的,但是得到的不是网格内的平均速度,麻烦有经验的朋友给更正一下,谢谢。
forAllIter(typename CloudType, this->owner(), iter) { typename CloudType::parcelType& p = iter(); const label cellI = p.cell(); const fvMesh& mesh = this->owner().mesh(); // average velocity of the lagrangian particle [m/s] volVectorField particleAverageVelocity ( IOobject ( "particleAverageVelocity", this->owner().db().time().timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ), mesh, dimensionedVector("zero", dimVelocity*dimMass/dimMass, vector::zero) ); forAll(particleAverageVelocity,i) { particleAverageVelocity[i] +=p.nParticle()*p.mass()*p.U(); } massTotal_ += p.nParticle()*p.mass(); p.U() =(particleAverageVelocity[cellI] * (1.0/massTotal_)); }
-
这个可以写的地方有很多,比如cloudfunction,或者cloud中,在solver中也能求。
也不知道你这个写在哪了。。
我是在particlecollector这个cloudfunction基础上写的 直接输出file 比较好后处理,你如果想再paraview 中直接看的话,我们同事是在cloud中写这个field,然后在solver中对其进行平均,比如每100 iteration 平均一次。。
-
@星星星星晴 我是写在了cloud里面,因为在cloud里我会用到这个平均速度。但是感觉不对,一加进去这段,我的粒子就静止不动,连重力的影响都没有了。感觉好像出速度是0,然后就一直保持0了似的。
-
@zhe 因为最后一步你重新给p.U()速度了啊。。