@星星星星晴 我是写在了cloud里面,因为在cloud里我会用到这个平均速度。但是感觉不对,一加进去这段,我的粒子就静止不动,连重力的影响都没有了。感觉好像出速度是0,然后就一直保持0了似的。

zhe
@zhe
Best posts made by zhe
Latest posts made by zhe
-
RE: 关于网格内particle的平均速度求解
-
关于网格内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_)); }
-
RE: 如何插值让一个point量等于cell center
@李东岳 谢谢李老师,我试过mesh(),还是过不了。这相当于一种以cell为计算单位的简化。在一些粒子数量级较大的情况下,可以应用。
-
RE: 如何获得cell里的parcel数量,得到总的体积?
@小考拉 你好,谢谢你的回复。我的邮件是zhecao1990@gmail.com。你可以发邮件咱们互相交流一下。
-
RE: 如何获得cell里的parcel数量,得到总的体积?
@zhe 更新一下,我发现在KinematicCloudI.H中可以直接得到每个cell里的总质量,也可以直接得到总体积theta。但是,我也有了新的的问题,我不知道怎么调取theta。错误提示是:error: ‘theta’ was not declared in this scope
我刚开始在头文件中加了#include "KinematicCloudI.H",但是提示重复命名里面所有的项。如果去掉,就显示error: ‘theta’ was not declared in this scope了。希望哪位知道的,能帮忙给个提示。谢谢啦! -
如何获得cell里的parcel数量,得到总的体积?
我的目的是获取每个cell的parcel数量,从而得到总的parcel的体积。
有个想法,通过求取网格内粒子的总质量,除以统一的粒子密度,得到总的体积。不知道这个code怎么写?
或者可不可以直接提取网格内体积分数theta,然后求得总质量。不知道哪种方法才能实现,希望得到一些编写code的指导。非常感谢。
-
什么是referred particles
//- Interactions between real and referred (off processor) particles void realReferredInteraction();
请问,在pairCollision中提到的referred particles 具体指什么?谢谢。
-
trackPart ParcelType::trackingData::在哪里被定义?
目前在看parcel track的时候,在不同类的parcel中总会有不同的trackPart。
比如基本的tpLinearTrack:trackPart part = ParcelType::trackingData::tpLinearTrack
还有MPPIC
class trackingData : public ParcelType::trackingData { public: enum trackPart { tpLinearTrack, tpDampingNoTrack, tpPackingNoTrack, tpCorrectTrack, };
这些在哪个原文件被定义的?还是说这些都是在不同类型parcel里分别被定义的?
希望能得到回复,谢谢!
-
如何插值让一个point量等于cell center
大家好,目前遇到一个难题,希望有经验的朋友帮忙解释一下,谢谢。
const objectRegistry& mesh(); const volVectorField& U = mesh().lookupObject<volVectorField>("U"); const volVectorField& centers = U.mesh().C(); const point pos; pointVectorField pos = volPointInterpolation::interpolate(centers);
像上面显示的,我调用了mesh的方程,得到每个cell的center。然后想令一个point形式的pos等于这个centers。由于field的类型不同,不知道该怎么做,希望得到帮助。