Foam::forceSuSp Foam::PressureGradientForce<CloudType>::calcCoupled ( const typename CloudType::parcelType& p, const scalar dt, const scalar mass, const scalar Re, const scalar muc ) const { forceSuSp value(Zero, 0.0); vector DUcDt = DUcDtInterp().interpolate(p.position(), p.currentTetIndices()); value.Su() = mass*p.rhoc()/p.rho()*DUcDt; return value; }
Foam::forceSuSp Foam::LiftForce<CloudType>::calcCoupled ( const typename CloudType::parcelType& p, const scalar dt, const scalar mass, const scalar Re, const scalar muc ) const { forceSuSp value(vector::zero, 0.0); vector curlUc = curlUcInterp().interpolate(p.position(), p.currentTetIndices()); scalar Cl = this->Cl(p, curlUc, Re, muc); value.Su() = mass/p.rho()*p.d()/2.0*p.rhoc()*Cl*((p.Uc() - p.U())^curlUc); return value; }
Foam::forceSuSp Foam::ParamagneticForce<CloudType>::calcNonCoupled ( const typename CloudType::parcelType& p, const typename CloudType::parcelType::trackingData& td, const scalar dt, const scalar mass, const scalar Re, const scalar muc ) const { forceSuSp value(Zero, 0.0); const interpolation<vector>& HdotGradHInterp = *HdotGradHInterpPtr_; value.Su()= mass*3.0*constant::electromagnetic::mu0.value()/p.rho() *magneticSusceptibility_/(magneticSusceptibility_ + 3) *HdotGradHInterp.interpolate(p.coordinates(), p.currentTetIndices()); return value; }
Foam::forceSuSp Foam::LiftForce<CloudType>::calcCoupled ( const typename CloudType::parcelType& p, const typename CloudType::parcelType::trackingData& td, const scalar dt, const scalar mass, const scalar Re, const scalar muc ) const { forceSuSp value(Zero, 0.0); vector curlUc = curlUcInterp().interpolate(p.coordinates(), p.currentTetIndices()); scalar Cl = this->Cl(p, td, curlUc, Re, muc); value.Su() = mass/p.rho()*td.rhoc()*Cl*((td.Uc() - p.U())^curlUc); return value; }