36 namespace compressible
48 LaunderGibsonRSTM::LaunderGibsonRSTM
56 RASModel(typeName, rho, U, phi, thermophysicalModel),
248 if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0)
252 "LaunderGibsonRSTM::LaunderGibsonRSTM"
253 "(const volScalarField&, const volVectorField&"
254 ", const surfaceScalarField&, basicThermo&)"
255 ) <<
"couplingFactor = " << couplingFactor_
256 <<
" is not in range 0 - 1" <<
nl
260 mut_ = Cmu_*rho_*
sqr(k_)/(epsilon_ + epsilonSmall_);
261 mut_.correctBoundaryConditions();
264 alphat_.correctBoundaryConditions();
294 if (couplingFactor_.value() > 0.0)
317 bool LaunderGibsonRSTM::read()
319 if (RASModel::read())
321 Cmu_.readIfPresent(coeffDict());
322 kappa_.readIfPresent(coeffDict());
323 Clg1_.readIfPresent(coeffDict());
324 Clg2_.readIfPresent(coeffDict());
325 C1_.readIfPresent(coeffDict());
326 C2_.readIfPresent(coeffDict());
327 Cs_.readIfPresent(coeffDict());
328 Ceps_.readIfPresent(coeffDict());
329 C1Ref_.readIfPresent(coeffDict());
330 C2Ref_.readIfPresent(coeffDict());
331 sigmaR_.readIfPresent(coeffDict());
332 sigmaEps_.readIfPresent(coeffDict());
333 Prt_.readIfPresent(coeffDict());
335 couplingFactor_.readIfPresent(coeffDict());
337 if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0)
340 <<
"couplingFactor = " << couplingFactor_
341 <<
" is not in range 0 - 1" <<
nl
359 mut_ = rho_*Cmu_*
sqr(k_)/(epsilon_ + epsilonSmall_);
360 mut_.correctBoundaryConditions();
364 alphat_.correctBoundaryConditions();
371 if (mesh_.changing())
380 epsilon_.boundaryField().updateCoeffs();
390 C1_*rho_*G*epsilon_/k_
391 -
fvm::Sp(C2_*rho_*epsilon_/k_, epsilon_)
396 epsEqn().boundaryManipulate(epsilon_.boundaryField());
399 bound(epsilon_, epsilon0_);
410 if (isA<wallFvPatch>(curPatch))
414 label faceCelli = curPatch.
faceCells()[facei];
416 min(G[faceCelli]/(0.5*
mag(
tr(P[faceCelli])) + SMALL), 100.0);
429 +
fvm::Sp(Clg1_*rho_*epsilon_/k_, R_)
432 + (2.0/3.0*(Clg1_ - 1)*
I)*rho_*epsilon_
438 I*((y_.n() & reflect) & y_.n())
439 - 1.5*(y_.n()*(reflect & y_.n())
440 + (y_.n() & reflect)*y_.n())
441 )*
pow(Cmu_, 0.75)*rho_*
pow(k_, 1.5)/(kappa_*y_*epsilon_)
455 k0_.value(), -GREAT, -GREAT,
467 mut_ = Cmu_*rho_*
sqr(k_)/epsilon_;
468 mut_.correctBoundaryConditions();
472 alphat_.correctBoundaryConditions();
480 if (isA<wallFvPatch>(curPatch))
490 = mesh_.Sf().boundaryField()[
patchi];
493 = mesh_.magSf().boundaryField()[
patchi];
499 = (faceAreas[facei]/magFaceAreas[facei])*snGradU[facei];
502 tensor tauw = -(mutw[facei]/rhow[facei])*2*
dev(
symm(gradUw));
505 Rw[facei].xy() = tauw.
xy();
506 Rw[facei].xz() = tauw.
xz();
507 Rw[facei].yz() = tauw.
yz();