particleforce类内ErgunWenYuDrag的表达式感觉有错误
-
@东岳 李老师,关于您这张图中的公式(16)我有几个疑问,如果说得不对望见谅。
1.对于连续相动量方程的拉力梯度项前是否需要乘以一个相分数主要决定于$\mathbf{F}$中的压力梯度力项是否提取出来了,如果提取出来了和前面的压力梯度项组合就会出现乘以相分数的情况,如果不提取出来,把颗粒的压力梯度力放在$\mathbf{F}$中,前面就不用再乘以相分数。不知道我这么解释是否正确?这个解释我是参考的文章Zhou et al. 2010
2.对于您式子(16)中最后一项为何$\mathbf{F}$的前面要乘以一个颗粒相分数,并且为何是除以颗粒的体积,按道理不应该是除以流场网格体积吗?
希望能得到李老师的解答。 -
@上级
您好,请问您上面的公式 F=Sp(U−Ud)+Su用来计算颗粒受力的,这里面的U和Ud分别表示的是什么东西?和KinematicParcel中的Uc_以及U_是对应关系吗const parcelType& p = static_cast<const parcelType&>(*this); const forceSuSp Fcp = forces.calcCoupled(p, dt, mass, Re, mu); const forceSuSp Fncp = forces.calcNonCoupled(p, dt, mass, Re, mu); const forceSuSp Feff = Fcp + Fncp; const scalar massEff = forces.massEff(p, mass); // Update velocity - treat as 3-D const vector abp = (Feff.Sp()*Uc_ + (Feff.Su() + Su))/massEff; const scalar bp = Feff.Sp()/massEff; Spu = dt*Feff.Sp(); IntegrationScheme<vector>::integrationResult Ures = td.cloud().UIntegrator().integrate(U_, dt, abp, bp); vector Unew = Ures.value(); // note: Feff.Sp() and Fc.Sp() must be the same dUTrans += dt*(Feff.Sp()*(Ures.average() - Uc_) - Fcp.Su()); // Apply correction to velocity and dUTrans for reduced-D cases const polyMesh& mesh = td.cloud().pMesh(); meshTools::constrainDirection(mesh, mesh.solutionD(), Unew); meshTools::constrainDirection(mesh, mesh.solutionD(), dUTrans); return Unew; }
如果我想要计算颗粒所受的ErgunWenYuDrag这个力的时候是不是就等于
(mass/p.rho() *(150.0*(1.0 - alphac)/alphac +1.75*Re)*muc/(alphac*sqr(p.d()))*(U-Ud)//这样就OK了吗?