Skip to content
Snippets Groups Projects
Commit 75a52009 authored by Henry's avatar Henry
Browse files

turbulenceModels/RAS/LRR: Added optional Gibson-Launder wall-reflection

parent fc1d7a47
Branches
Tags
...@@ -24,6 +24,7 @@ License ...@@ -24,6 +24,7 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "LRR.H" #include "LRR.H"
#include "wallFvPatch.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
...@@ -80,38 +81,38 @@ LRR<BasicTurbulenceModel>::LRR ...@@ -80,38 +81,38 @@ LRR<BasicTurbulenceModel>::LRR
0.09 0.09
) )
), ),
Clrr1_ C1_
( (
dimensioned<scalar>::lookupOrAddToDict dimensioned<scalar>::lookupOrAddToDict
( (
"Clrr1", "C1",
this->coeffDict_, this->coeffDict_,
1.8 1.8
) )
), ),
Clrr2_ C2_
( (
dimensioned<scalar>::lookupOrAddToDict dimensioned<scalar>::lookupOrAddToDict
( (
"Clrr2", "C2",
this->coeffDict_, this->coeffDict_,
0.6 0.6
) )
), ),
C1_ Ceps1_
( (
dimensioned<scalar>::lookupOrAddToDict dimensioned<scalar>::lookupOrAddToDict
( (
"C1", "Ceps1",
this->coeffDict_, this->coeffDict_,
1.44 1.44
) )
), ),
C2_ Ceps2_
( (
dimensioned<scalar>::lookupOrAddToDict dimensioned<scalar>::lookupOrAddToDict
( (
"C2", "Ceps2",
this->coeffDict_, this->coeffDict_,
1.92 1.92
) )
...@@ -135,6 +136,43 @@ LRR<BasicTurbulenceModel>::LRR ...@@ -135,6 +136,43 @@ LRR<BasicTurbulenceModel>::LRR
) )
), ),
wallReflection_
(
Switch::lookupOrAddToDict
(
"wallReflection",
this->coeffDict_,
true
)
),
kappa_
(
dimensioned<scalar>::lookupOrAddToDict
(
"kappa",
this->coeffDict_,
0.41
)
),
Cref1_
(
dimensioned<scalar>::lookupOrAddToDict
(
"Cref1",
this->coeffDict_,
0.5
)
),
Cref2_
(
dimensioned<scalar>::lookupOrAddToDict
(
"Cref2",
this->coeffDict_,
0.3
)
),
k_ k_
( (
IOobject IOobject
...@@ -179,10 +217,10 @@ bool LRR<BasicTurbulenceModel>::read() ...@@ -179,10 +217,10 @@ bool LRR<BasicTurbulenceModel>::read()
if (ReynoldsStress<RASModel<BasicTurbulenceModel> >::read()) if (ReynoldsStress<RASModel<BasicTurbulenceModel> >::read())
{ {
Cmu_.readIfPresent(this->coeffDict()); Cmu_.readIfPresent(this->coeffDict());
Clrr1_.readIfPresent(this->coeffDict());
Clrr2_.readIfPresent(this->coeffDict());
C1_.readIfPresent(this->coeffDict()); C1_.readIfPresent(this->coeffDict());
C2_.readIfPresent(this->coeffDict()); C2_.readIfPresent(this->coeffDict());
Ceps1_.readIfPresent(this->coeffDict());
Ceps2_.readIfPresent(this->coeffDict());
Cs_.readIfPresent(this->coeffDict()); Cs_.readIfPresent(this->coeffDict());
Ceps_.readIfPresent(this->coeffDict()); Ceps_.readIfPresent(this->coeffDict());
...@@ -228,8 +266,8 @@ void LRR<BasicTurbulenceModel>::correct() ...@@ -228,8 +266,8 @@ void LRR<BasicTurbulenceModel>::correct()
+ fvm::div(alphaRhoPhi, epsilon_) + fvm::div(alphaRhoPhi, epsilon_)
- fvm::laplacian(Ceps_*alpha*rho*(k_/epsilon_)*R, epsilon_) - fvm::laplacian(Ceps_*alpha*rho*(k_/epsilon_)*R, epsilon_)
== ==
C1_*alpha*rho*G*epsilon_/k_ Ceps1_*alpha*rho*G*epsilon_/k_
- fvm::Sp(C2_*alpha*rho*epsilon_/k_, epsilon_) - fvm::Sp(Ceps2_*alpha*rho*epsilon_/k_, epsilon_)
); );
epsEqn().relax(); epsEqn().relax();
...@@ -268,13 +306,29 @@ void LRR<BasicTurbulenceModel>::correct() ...@@ -268,13 +306,29 @@ void LRR<BasicTurbulenceModel>::correct()
fvm::ddt(alpha, rho, R) fvm::ddt(alpha, rho, R)
+ fvm::div(alphaRhoPhi, R) + fvm::div(alphaRhoPhi, R)
- fvm::laplacian(Cs_*alpha*rho*(k_/epsilon_)*R, R) - fvm::laplacian(Cs_*alpha*rho*(k_/epsilon_)*R, R)
+ fvm::Sp(Clrr1_*alpha*rho*epsilon_/k_, R) + fvm::Sp(C1_*alpha*rho*epsilon_/k_, R)
== ==
alpha*rho*P alpha*rho*P
- (2.0/3.0*(1 - Clrr1_)*I)*alpha*rho*epsilon_ - (2.0/3.0*(1 - C1_)*I)*alpha*rho*epsilon_
- Clrr2_*alpha*rho*dev(P) - C2_*alpha*rho*dev(P)
); );
// Optionally add wall-refection term
if (wallReflection_)
{
const volVectorField& n_(wallDist::New(this->mesh_).n());
const volScalarField& y_(wallDist::New(this->mesh_).y());
const volSymmTensorField reflect
(
Cref1_*R - ((Cref2_*C2_)*(k_/epsilon_))*dev(P)
);
REqn() +=
((3*pow(Cmu_, 0.75)/kappa_)*(alpha*rho*sqrt(k_)/y_))
*dev(symm((n_ & reflect)*n_));
}
REqn().relax(); REqn().relax();
solve(REqn); solve(REqn);
......
...@@ -46,17 +46,31 @@ Description ...@@ -46,17 +46,31 @@ Description
Physics of Fluids (1958-1988), 13(11), 2634-2649. Physics of Fluids (1958-1988), 13(11), 2634-2649.
\endverbatim \endverbatim
Optional Gibson-Launder wall-reflection is also provided:
\verbatim
Gibson, M. M., & Launder, B. E. (1978).
Ground effects on pressure fluctuations in the
atmospheric boundary layer.
Journal of Fluid Mechanics, 86(03), 491-511.
\endverbatim
The default model coefficients are: The default model coefficients are:
\verbatim \verbatim
LRRCoeffs LRRCoeffs
{ {
Cmu 0.09; Cmu 0.09;
Clrr1 1.8; C1 1.8;
Clrr2 0.6; C2 0.6;
C1 1.44; Ceps1 1.44;
C2 1.92; Ceps2 1.92;
Cs 0.25; Cs 0.25;
Ceps 0.15; Ceps 0.15;
wallReflection yes;
kappa 0.41
Cref1 0.5;
Cref2 0.3;
couplingFactor 0.0; couplingFactor 0.0;
} }
\endverbatim \endverbatim
...@@ -103,15 +117,23 @@ protected: ...@@ -103,15 +117,23 @@ protected:
dimensionedScalar Cmu_; dimensionedScalar Cmu_;
dimensionedScalar Clrr1_;
dimensionedScalar Clrr2_;
dimensionedScalar C1_; dimensionedScalar C1_;
dimensionedScalar C2_; dimensionedScalar C2_;
dimensionedScalar Ceps1_;
dimensionedScalar Ceps2_;
dimensionedScalar Cs_; dimensionedScalar Cs_;
dimensionedScalar Ceps_; dimensionedScalar Ceps_;
// Wall-refection coefficients
Switch wallReflection_;
dimensionedScalar kappa_;
dimensionedScalar Cref1_;
dimensionedScalar Cref2_;
// Fields // Fields
volScalarField k_; volScalarField k_;
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment