Reynolds stress turbulence models: Add laminar diffusion of R and epsilon
Also use the innerSqr function where appropriate
This commit is contained in:
@ -238,6 +238,34 @@ bool LRR<BasicTurbulenceModel>::read()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class BasicTurbulenceModel>
|
||||||
|
tmp<volSymmTensorField> LRR<BasicTurbulenceModel>::DREff() const
|
||||||
|
{
|
||||||
|
return tmp<volSymmTensorField>
|
||||||
|
(
|
||||||
|
new volSymmTensorField
|
||||||
|
(
|
||||||
|
"DREff",
|
||||||
|
(Cs_*(this->k_/this->epsilon_))*this->R_ + I*this->nu()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class BasicTurbulenceModel>
|
||||||
|
tmp<volSymmTensorField> LRR<BasicTurbulenceModel>::DepsilonEff() const
|
||||||
|
{
|
||||||
|
return tmp<volSymmTensorField>
|
||||||
|
(
|
||||||
|
new volSymmTensorField
|
||||||
|
(
|
||||||
|
"DepsilonEff",
|
||||||
|
(Ceps_*(this->k_/this->epsilon_))*this->R_ + I*this->nu()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class BasicTurbulenceModel>
|
template<class BasicTurbulenceModel>
|
||||||
void LRR<BasicTurbulenceModel>::correct()
|
void LRR<BasicTurbulenceModel>::correct()
|
||||||
{
|
{
|
||||||
@ -269,7 +297,7 @@ void LRR<BasicTurbulenceModel>::correct()
|
|||||||
(
|
(
|
||||||
fvm::ddt(alpha, rho, epsilon_)
|
fvm::ddt(alpha, rho, epsilon_)
|
||||||
+ fvm::div(alphaRhoPhi, epsilon_)
|
+ fvm::div(alphaRhoPhi, epsilon_)
|
||||||
- fvm::laplacian(Ceps_*alpha*rho*(k_/epsilon_)*R, epsilon_)
|
- fvm::laplacian(alpha*rho*DepsilonEff(), epsilon_)
|
||||||
==
|
==
|
||||||
Ceps1_*alpha*rho*G*epsilon_/k_
|
Ceps1_*alpha*rho*G*epsilon_/k_
|
||||||
- fvm::Sp(Ceps2_*alpha*rho*epsilon_/k_, epsilon_)
|
- fvm::Sp(Ceps2_*alpha*rho*epsilon_/k_, epsilon_)
|
||||||
@ -310,7 +338,7 @@ 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(alpha*rho*DREff(), R)
|
||||||
+ fvm::Sp(C1_*alpha*rho*epsilon_/k_, R)
|
+ fvm::Sp(C1_*alpha*rho*epsilon_/k_, R)
|
||||||
==
|
==
|
||||||
alpha*rho*P
|
alpha*rho*P
|
||||||
|
|||||||
@ -195,6 +195,12 @@ public:
|
|||||||
return epsilon_;
|
return epsilon_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//- Return the effective diffusivity for R
|
||||||
|
tmp<volSymmTensorField> DREff() const;
|
||||||
|
|
||||||
|
//- Return the effective diffusivity for epsilon
|
||||||
|
tmp<volSymmTensorField> DepsilonEff() const;
|
||||||
|
|
||||||
//- Solve the turbulence equations and correct eddy-Viscosity and
|
//- Solve the turbulence equations and correct eddy-Viscosity and
|
||||||
// related properties
|
// related properties
|
||||||
virtual void correct();
|
virtual void correct();
|
||||||
|
|||||||
@ -248,6 +248,34 @@ bool SSG<BasicTurbulenceModel>::read()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class BasicTurbulenceModel>
|
||||||
|
tmp<volSymmTensorField> SSG<BasicTurbulenceModel>::DREff() const
|
||||||
|
{
|
||||||
|
return tmp<volSymmTensorField>
|
||||||
|
(
|
||||||
|
new volSymmTensorField
|
||||||
|
(
|
||||||
|
"DREff",
|
||||||
|
(Cs_*(this->k_/this->epsilon_))*this->R_ + I*this->nu()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class BasicTurbulenceModel>
|
||||||
|
tmp<volSymmTensorField> SSG<BasicTurbulenceModel>::DepsilonEff() const
|
||||||
|
{
|
||||||
|
return tmp<volSymmTensorField>
|
||||||
|
(
|
||||||
|
new volSymmTensorField
|
||||||
|
(
|
||||||
|
"DepsilonEff",
|
||||||
|
(Ceps_*(this->k_/this->epsilon_))*this->R_ + I*this->nu()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class BasicTurbulenceModel>
|
template<class BasicTurbulenceModel>
|
||||||
void SSG<BasicTurbulenceModel>::correct()
|
void SSG<BasicTurbulenceModel>::correct()
|
||||||
{
|
{
|
||||||
@ -279,7 +307,7 @@ void SSG<BasicTurbulenceModel>::correct()
|
|||||||
(
|
(
|
||||||
fvm::ddt(alpha, rho, epsilon_)
|
fvm::ddt(alpha, rho, epsilon_)
|
||||||
+ fvm::div(alphaRhoPhi, epsilon_)
|
+ fvm::div(alphaRhoPhi, epsilon_)
|
||||||
- fvm::laplacian(Ceps_*alpha*rho*(k_/epsilon_)*R, epsilon_)
|
- fvm::laplacian(alpha*rho*DepsilonEff(), epsilon_)
|
||||||
==
|
==
|
||||||
Ceps1_*alpha*rho*G*epsilon_/k_
|
Ceps1_*alpha*rho*G*epsilon_/k_
|
||||||
- fvm::Sp(Ceps2_*alpha*rho*epsilon_/k_, epsilon_)
|
- fvm::Sp(Ceps2_*alpha*rho*epsilon_/k_, epsilon_)
|
||||||
@ -324,15 +352,15 @@ void SSG<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(alpha*rho*DREff(), R)
|
||||||
+ fvm::Sp(((C1_/2)*epsilon_ + (C1s_/2)*G)*alpha*rho/k_, R)
|
+ fvm::Sp(((C1_/2)*epsilon_ + (C1s_/2)*G)*alpha*rho/k_, R)
|
||||||
==
|
==
|
||||||
alpha*rho*P
|
alpha*rho*P
|
||||||
- ((1.0/3.0)*I)*(((2.0 - C1_)*epsilon_ - C1s_*G)*alpha*rho)
|
- ((1.0/3.0)*I)*(((2.0 - C1_)*epsilon_ - C1s_*G)*alpha*rho)
|
||||||
+ (C2_*(alpha*rho*epsilon_))*dev(symm(b&b)) // symm should not be needed
|
+ (C2_*(alpha*rho*epsilon_))*dev(innerSqr(b))
|
||||||
+ alpha*rho*k_
|
+ alpha*rho*k_
|
||||||
*(
|
*(
|
||||||
(C3_ - C3s_*mag(b))*S
|
(C3_ - C3s_*mag(b))*dev(S)
|
||||||
+ C4_*dev(twoSymm(b&S))
|
+ C4_*dev(twoSymm(b&S))
|
||||||
+ C5_*twoSymm(b&Omega)
|
+ C5_*twoSymm(b&Omega)
|
||||||
)
|
)
|
||||||
|
|||||||
@ -186,6 +186,12 @@ public:
|
|||||||
return epsilon_;
|
return epsilon_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//- Return the effective diffusivity for R
|
||||||
|
tmp<volSymmTensorField> DREff() const;
|
||||||
|
|
||||||
|
//- Return the effective diffusivity for epsilon
|
||||||
|
tmp<volSymmTensorField> DepsilonEff() const;
|
||||||
|
|
||||||
//- Solve the turbulence equations and correct eddy-Viscosity and
|
//- Solve the turbulence equations and correct eddy-Viscosity and
|
||||||
// related properties
|
// related properties
|
||||||
virtual void correct();
|
virtual void correct();
|
||||||
|
|||||||
Reference in New Issue
Block a user