Foam::forceSuSp Foam::DPMDragModels::ErgunWenYu<CloudType>::calcCoupled ( const typename CloudType::parcelType& p, const scalar dt, const scalar mass, const scalar Re, const scalar muc ) const { scalar alphac(alphac_[p.cell()]); if (alphac < 0.8) { return forceSuSp ( vector::zero, (mass/p.rho()) *((150.0*(1.0 - alphac) + 1.75*Re)*muc/(alphac*sqr(p.d()))) ); } else { return forceSuSp ( vector::zero, (mass/p.rho()) *0.75*CdRe(alphac*Re)*muc*pow(alphac, -2.65)/sqr(p.d()) ); } }
Foam::forceSuSp Foam::PlessisMasliyahDragForce<CloudType>::calcCoupled ( const typename CloudType::parcelType& p, const scalar dt, const scalar mass, const scalar Re, const scalar muc ) const { scalar alphac(alphac_[p.cell()]); scalar cbrtAlphap(pow(1.0 - alphac, 1.0/3.0)); scalar A = 26.8*pow3(alphac) /( sqr(cbrtAlphap) *(1.0 - cbrtAlphap) *sqr(1.0 - sqr(cbrtAlphap)) + SMALL ); scalar B = sqr(alphac) /sqr(1.0 - sqr(cbrtAlphap)); return forceSuSp ( vector::zero, (mass/p.rho()) *(A*(1.0 - alphac) + B*Re)*muc/(alphac*sqr(p.d())) ); }
/* * synthesize - synthesis function */ void rectwaveguide::synthesize () { double lambda_g, k, beta; /* Get and assign substrate parameters */ get_rectwaveguide_sub(); /* Get and assign component parameters */ get_rectwaveguide_comp(); /* Get and assign electrical parameters */ get_rectwaveguide_elec(); /* Get and assign physical parameters */ get_rectwaveguide_phys(); if (isSelected ("b")) { /* solve for b */ b = Z0 * a * sqrt(1.0 - pow((fc(1,0)/f),2.0))/ (2. * ZF0); setProperty ("b", b, UNIT_LENGTH, LENGTH_M); } else if (isSelected ("a")) { /* solve for a */ a = sqrt(pow((2.0 * ZF0 * b/Z0), 2.0) + pow((C0/(2.0 * f)),2.0)); setProperty ("a", a, UNIT_LENGTH, LENGTH_M); } k = kval (); beta = sqrt(pow(k,2.) - pow(kc(1,0),2.0)); lambda_g = (2. * M_PI)/beta; l = (ang_l * lambda_g)/(2.0 * M_PI); /* in m */ setProperty ("L", l, UNIT_LENGTH, LENGTH_M); if (kc(1,0) <= k) { /*propagating modes */ beta = sqrt(pow(k,2.) - pow(kc(1,0),2.0)); lambda_g = (2. * M_PI)/beta; atten_cond = alphac () * l; atten_dielectric = alphad () * l; er_eff = (1.0 - pow((fc(1,0)/f),2.0)); } else { /*evanascent modes */ Z0 = 0; ang_l = 0; er_eff = 0; atten_dielectric = 0.0; atten_cond = alphac_cutoff () * l; } show_results (); }
Foam::forceSuSp Foam::WenYuDragForce<CloudType>::calcCoupled ( const typename CloudType::parcelType& p, const scalar dt, const scalar mass, const scalar Re, const scalar muc ) const { scalar alphac(alphac_[p.cell()]); return forceSuSp ( vector::zero, (mass/p.rho()) *0.75*CdRe(alphac*Re)*muc*pow(alphac, -2.65)/(alphac*sqr(p.d())) ); }
/* * analyze - analysis function */ void rectwaveguide::analyze () { double lambda_g; double k; double beta; /* Get and assign substrate parameters */ get_rectwaveguide_sub(); /* Get and assign component parameters */ get_rectwaveguide_comp(); /* Get and assign physical parameters */ get_rectwaveguide_phys(); k = kval (); if (kc (1,0) <= k) { /* propagating modes */ beta = sqrt (pow (k, 2.0) - pow (kc (1,0), 2.0)); lambda_g = 2.0 * M_PI / beta; /* Z0 = (k * ZF0) / beta; */ Z0 = k * ZF0 / beta; /* calculate electrical angle */ lambda_g = 2.0 * M_PI / beta; ang_l = 2.0 * M_PI * l / lambda_g; /* in radians */ atten_cond = alphac () * l; atten_dielectric = alphad () * l; er_eff = (1.0 - pow ((fc (1,0) / f), 2.0)); } else { /* evanascent modes */ Z0 = 0; ang_l = 0; er_eff = 0; atten_dielectric = 0.0; atten_cond = alphac_cutoff () * l; } setProperty ("Z0", Z0, UNIT_RES, RES_OHM); setProperty ("Ang_l", ang_l, UNIT_ANG, ANG_RAD); show_results (); }