粒子库的move函数
-
@杨英狄 你好,你是自己添加了一个函数在kinematicparcel.c中?类似cellValueSourceCorrection这个函数?希望问题不是出在定义这个函数。。
不知道下面的能不能解决你的问题获取某cell的某个field的值 const objectRegistry& obr = this->mesh(); rhoc = obr.lookupObject<volScalarField> ("rho").internalField() [celli]; 获取cell体积 const objectRegistry& obr = this->owner().mesh(); scalar Vcell = this->owner().mesh().V() [cellI]; 在hitpatch中有这个 typename TrackCloudType::parcelType& p = static_cast<typename TrackCloudType::parcelType&> (*this); const polyPatch& pp = p.mesh().boundaryMesh() [p.patch()];
-
@星星星星晴 你好,是这样的。我的根本目的是做一个新的CloudFunctionObjects,就像particleerosion或者particleTrap这种。
我发现particleTrap里面有postface函数。我注意到这个postface函数在kinematic.C文件里的move函数中被调用了。所以我就想把我的CloudFunctionObject里的could.functions().函数也加在move里面。(不太清楚particleTrap里面的postface函数与move函数里面调用的postface函数是不是一个东西)
非常感谢! -
@杨英狄 不好意思 我对这个方程不是很了解,可能之前有说错的地方。
但是我查了一下postface 这个函数就是定义在particletrap中,所以在kinematic.C中是通过这个方法调用的
cloud.functions().postFace(p, ttd.keepParticle);
你可以试着先copy particletrap这个cloudfunction,
改个名particletrap2,方程改为postface2,
重新编译一下,然后你在kinematicparcel的move中调用cloud.functions().postFace2(p, ttd.keepParticle);
这俩code是可以用在cloudfunction中的
获取某cell的某个field的值 const objectRegistry& obr = this->mesh(); rhoc = obr.lookupObject<volScalarField> ("rho").internalField() [celli]; 获取cell体积 const objectRegistry& obr = this->owner().mesh(); scalar Vcell = this->owner().mesh().V() [cellI];