void Foam::LambertWall<CloudType>::evaluatePendularWall ( typename CloudType::parcelType& p, const point& site, const WallSiteData<vector>& data, scalar pREff ) const { const scalar& st = this->surfaceTension(); const scalar& ca = this->contactAngle(); const scalar& lf = this->liqFrac(); const scalar& vis = this->viscosity(); const scalar& ms = this->minSep(); scalar Vtot = lf*(p.Vliq()); vector r_PW = p.position() - site; vector U_PW = p.U() - data.wallData(); scalar r_PW_mag = mag(r_PW); scalar normalOverlapMag = pREff - r_PW_mag; scalar S = -normalOverlapMag; vector rHat_PW = r_PW/(r_PW_mag + VSMALL); // Normal force scalar capMag = 4*mathematical::pi*pREff*st*cos(ca)/ (1+max(S, 0)*sqrt(mathematical::pi*pREff/Vtot)); //Info << "the value of capMag is " << capMag << endl; //Info << " the value of overlapMag S is " << S << endl; //Info << " the volume of Vtot is " << Vtot << endl; scalar Svis = max(pREff*ms, S); scalar etaN = 6*mathematical::pi*vis*pREff*pREff/Svis; vector fN_PW = (-capMag - etaN*(U_PW & rHat_PW)) * rHat_PW; p.f() += fN_PW; vector UT_PW = U_PW - (U_PW & rHat_PW)*rHat_PW - ((pREff*p.omega()) ^ rHat_PW); scalar etaT = 6*mathematical::pi*vis*pREff*(8./15.*log(pREff/Svis) + 0.9588); vector fT_PW = -etaT * UT_PW; p.f() += fT_PW; p.torque() += (pREff*-rHat_PW) ^ fT_PW; }
void Foam::ManualInjectionWet<CloudType>::setProperties ( const label parcelI, const label, const scalar, typename CloudType::parcelType& parcel ) { // set particle velocity parcel.U() = U0_; // set particle diameter parcel.d() = diameters_[parcelI]; // set initial liquid volume parcel.Vliq() = iniVliq_; }