关于网格内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()速度了啊。。


Log in to reply
 


CFD中文网 | 东岳流体学术 | 东岳流体商业 | 吉ICP备20003622号-1