mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' of ssh://graham@hunt//home/noisy3/OpenFOAM/OpenFOAM-dev
This commit is contained in:
@ -168,10 +168,10 @@ LaunderSharmaKE::LaunderSharmaKE
|
|||||||
"mut",
|
"mut",
|
||||||
runTime_.timeName(),
|
runTime_.timeName(),
|
||||||
mesh_,
|
mesh_,
|
||||||
IOobject::MUST_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
rho_*Cmu_*fMu()*sqr(k_)/(epsilon_ + epsilonSmall_)
|
autoCreateLowReMut("mut", mesh_)
|
||||||
),
|
),
|
||||||
|
|
||||||
alphat_
|
alphat_
|
||||||
@ -187,6 +187,9 @@ LaunderSharmaKE::LaunderSharmaKE
|
|||||||
autoCreateAlphat("alphat", mesh_)
|
autoCreateAlphat("alphat", mesh_)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
mut_ = rho_*Cmu_*fMu()*sqr(k_)/(epsilon_ + epsilonSmall_);
|
||||||
|
mut_.correctBoundaryConditions();
|
||||||
|
|
||||||
alphat_ = mut_/Prt_;
|
alphat_ = mut_/Prt_;
|
||||||
alphat_.correctBoundaryConditions();
|
alphat_.correctBoundaryConditions();
|
||||||
|
|
||||||
|
|||||||
@ -29,6 +29,7 @@ License
|
|||||||
#include "calculatedFvPatchField.H"
|
#include "calculatedFvPatchField.H"
|
||||||
#include "alphatWallFunctionFvPatchScalarField.H"
|
#include "alphatWallFunctionFvPatchScalarField.H"
|
||||||
#include "mutkWallFunctionFvPatchScalarField.H"
|
#include "mutkWallFunctionFvPatchScalarField.H"
|
||||||
|
#include "mutLowReWallFunctionFvPatchScalarField.H"
|
||||||
#include "epsilonWallFunctionFvPatchScalarField.H"
|
#include "epsilonWallFunctionFvPatchScalarField.H"
|
||||||
#include "kqRWallFunctionFvPatchField.H"
|
#include "kqRWallFunctionFvPatchField.H"
|
||||||
#include "omegaWallFunctionFvPatchScalarField.H"
|
#include "omegaWallFunctionFvPatchScalarField.H"
|
||||||
@ -182,6 +183,76 @@ tmp<volScalarField> autoCreateMut
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
tmp<volScalarField> autoCreateLowReMut
|
||||||
|
(
|
||||||
|
const word& fieldName,
|
||||||
|
const fvMesh& mesh
|
||||||
|
)
|
||||||
|
{
|
||||||
|
IOobject mutHeader
|
||||||
|
(
|
||||||
|
fieldName,
|
||||||
|
mesh.time().timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::NO_WRITE,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
if (mutHeader.headerOk())
|
||||||
|
{
|
||||||
|
return tmp<volScalarField>(new volScalarField(mutHeader, mesh));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Info<< "--> Creating " << fieldName
|
||||||
|
<< " to employ run-time selectable wall functions" << endl;
|
||||||
|
|
||||||
|
const fvBoundaryMesh& bm = mesh.boundary();
|
||||||
|
|
||||||
|
wordList mutBoundaryTypes(bm.size());
|
||||||
|
|
||||||
|
forAll(bm, patchI)
|
||||||
|
{
|
||||||
|
if (isA<wallFvPatch>(bm[patchI]))
|
||||||
|
{
|
||||||
|
mutBoundaryTypes[patchI] =
|
||||||
|
RASModels::mutLowReWallFunctionFvPatchScalarField::typeName;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mutBoundaryTypes[patchI] =
|
||||||
|
calculatedFvPatchField<scalar>::typeName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tmp<volScalarField> mut
|
||||||
|
(
|
||||||
|
new volScalarField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
fieldName,
|
||||||
|
mesh.time().timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE,
|
||||||
|
false
|
||||||
|
),
|
||||||
|
mesh,
|
||||||
|
dimensionedScalar("zero", dimDensity*dimArea/dimTime, 0.0),
|
||||||
|
mutBoundaryTypes
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< " Writing new " << fieldName << endl;
|
||||||
|
mut().write();
|
||||||
|
|
||||||
|
return mut;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
tmp<volScalarField> autoCreateEpsilon
|
tmp<volScalarField> autoCreateEpsilon
|
||||||
(
|
(
|
||||||
const word& fieldName,
|
const word& fieldName,
|
||||||
|
|||||||
@ -53,6 +53,13 @@ namespace compressible
|
|||||||
const fvMesh& mesh
|
const fvMesh& mesh
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//- mut for Low-Reynolds number models
|
||||||
|
tmp<volScalarField> autoCreateLowReMut
|
||||||
|
(
|
||||||
|
const word& fieldName,
|
||||||
|
const fvMesh& mesh
|
||||||
|
);
|
||||||
|
|
||||||
//- alphat
|
//- alphat
|
||||||
tmp<volScalarField> autoCreateAlphat
|
tmp<volScalarField> autoCreateAlphat
|
||||||
(
|
(
|
||||||
|
|||||||
@ -127,8 +127,22 @@ LamBremhorstKE::LamBremhorstKE
|
|||||||
*(scalar(1) + 20.5/(Rt_ + SMALL))
|
*(scalar(1) + 20.5/(Rt_ + SMALL))
|
||||||
),
|
),
|
||||||
|
|
||||||
nut_(Cmu_*fMu_*sqr(k_)/(epsilon_ + epsilonSmall_))
|
nut_
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"nut",
|
||||||
|
runTime_.timeName(),
|
||||||
|
mesh_,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
autoCreateLowReNut("nut", mesh_)
|
||||||
|
)
|
||||||
{
|
{
|
||||||
|
nut_ = Cmu_*fMu_*sqr(k_)/(epsilon_ + epsilonSmall_);
|
||||||
|
nut_.correctBoundaryConditions();
|
||||||
|
|
||||||
printCoeffs();
|
printCoeffs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -133,8 +133,22 @@ LaunderSharmaKE::LaunderSharmaKE
|
|||||||
mesh_
|
mesh_
|
||||||
),
|
),
|
||||||
|
|
||||||
nut_(Cmu_*fMu()*sqr(k_)/(epsilonTilda_ + epsilonSmall_))
|
nut_
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"nut",
|
||||||
|
runTime_.timeName(),
|
||||||
|
mesh_,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
autoCreateLowReNut("nut", mesh_)
|
||||||
|
)
|
||||||
{
|
{
|
||||||
|
nut_ = Cmu_*fMu()*sqr(k_)/(epsilonTilda_ + epsilonSmall_);
|
||||||
|
nut_.correctBoundaryConditions();
|
||||||
|
|
||||||
printCoeffs();
|
printCoeffs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -28,6 +28,8 @@ License
|
|||||||
#include "wallFvPatch.H"
|
#include "wallFvPatch.H"
|
||||||
#include "addToRunTimeSelectionTable.H"
|
#include "addToRunTimeSelectionTable.H"
|
||||||
|
|
||||||
|
#include "backwardsCompatibilityWallFunctions.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
namespace Foam
|
namespace Foam
|
||||||
@ -233,20 +235,16 @@ LienCubicKELowRe::LienCubicKELowRe
|
|||||||
|
|
||||||
nut_
|
nut_
|
||||||
(
|
(
|
||||||
Cmu_
|
IOobject
|
||||||
*(
|
|
||||||
scalar(1) - exp(-Am_*yStar_))
|
|
||||||
/(scalar(1) - exp(-Aepsilon_*yStar_) + SMALL
|
|
||||||
)
|
|
||||||
*sqr(k_)/(epsilon_ + epsilonSmall_)
|
|
||||||
// cubic term C5, implicit part
|
|
||||||
+ max
|
|
||||||
(
|
(
|
||||||
C5viscosity_,
|
"nut",
|
||||||
dimensionedScalar("0", C5viscosity_.dimensions(), 0.0)
|
runTime_.timeName(),
|
||||||
)
|
mesh_,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
autoCreateLowReNut("nut", mesh_)
|
||||||
),
|
),
|
||||||
// turbulent viscosity, with implicit part of C5
|
|
||||||
|
|
||||||
nonlinearStress_
|
nonlinearStress_
|
||||||
(
|
(
|
||||||
@ -282,6 +280,21 @@ LienCubicKELowRe::LienCubicKELowRe
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
nut_ = Cmu_
|
||||||
|
*(
|
||||||
|
scalar(1) - exp(-Am_*yStar_))
|
||||||
|
/(scalar(1) - exp(-Aepsilon_*yStar_) + SMALL
|
||||||
|
)
|
||||||
|
*sqr(k_)/(epsilon_ + epsilonSmall_)
|
||||||
|
// cubic term C5, implicit part
|
||||||
|
+ max
|
||||||
|
(
|
||||||
|
C5viscosity_,
|
||||||
|
dimensionedScalar("0", C5viscosity_.dimensions(), 0.0)
|
||||||
|
);
|
||||||
|
|
||||||
|
nut_.correctBoundaryConditions();
|
||||||
|
|
||||||
printCoeffs();
|
printCoeffs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -28,6 +28,8 @@ License
|
|||||||
#include "wallFvPatch.H"
|
#include "wallFvPatch.H"
|
||||||
#include "addToRunTimeSelectionTable.H"
|
#include "addToRunTimeSelectionTable.H"
|
||||||
|
|
||||||
|
#include "backwardsCompatibilityWallFunctions.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
namespace Foam
|
namespace Foam
|
||||||
@ -167,11 +169,22 @@ LienLeschzinerLowRe::LienLeschzinerLowRe
|
|||||||
|
|
||||||
nut_
|
nut_
|
||||||
(
|
(
|
||||||
Cmu_*(scalar(1) - exp(-Am_*yStar_))
|
IOobject
|
||||||
/(scalar(1) - exp(-Aepsilon_*yStar_) + SMALL)*sqr(k_)
|
(
|
||||||
/(epsilon_ + epsilonSmall_)
|
"epsilon",
|
||||||
|
runTime_.timeName(),
|
||||||
|
mesh_,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
|
),
|
||||||
|
autoCreateLowReNut("nut", mesh_)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
nut_ = Cmu_*(scalar(1) - exp(-Am_*yStar_))
|
||||||
|
/(scalar(1) - exp(-Aepsilon_*yStar_) + SMALL)*sqr(k_)
|
||||||
|
/(epsilon_ + epsilonSmall_);
|
||||||
|
nut_.correctBoundaryConditions();
|
||||||
|
|
||||||
printCoeffs();
|
printCoeffs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -28,6 +28,7 @@ License
|
|||||||
|
|
||||||
#include "calculatedFvPatchField.H"
|
#include "calculatedFvPatchField.H"
|
||||||
#include "nutkWallFunctionFvPatchScalarField.H"
|
#include "nutkWallFunctionFvPatchScalarField.H"
|
||||||
|
#include "nutLowReWallFunctionFvPatchScalarField.H"
|
||||||
#include "epsilonWallFunctionFvPatchScalarField.H"
|
#include "epsilonWallFunctionFvPatchScalarField.H"
|
||||||
#include "kqRWallFunctionFvPatchField.H"
|
#include "kqRWallFunctionFvPatchField.H"
|
||||||
#include "omegaWallFunctionFvPatchScalarField.H"
|
#include "omegaWallFunctionFvPatchScalarField.H"
|
||||||
@ -111,6 +112,76 @@ tmp<volScalarField> autoCreateNut
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
tmp<volScalarField> autoCreateLowReNut
|
||||||
|
(
|
||||||
|
const word& fieldName,
|
||||||
|
const fvMesh& mesh
|
||||||
|
)
|
||||||
|
{
|
||||||
|
IOobject nutHeader
|
||||||
|
(
|
||||||
|
fieldName,
|
||||||
|
mesh.time().timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::NO_WRITE,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
if (nutHeader.headerOk())
|
||||||
|
{
|
||||||
|
return tmp<volScalarField>(new volScalarField(nutHeader, mesh));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Info<< "--> Creating " << fieldName
|
||||||
|
<< " to employ run-time selectable wall functions" << endl;
|
||||||
|
|
||||||
|
const fvBoundaryMesh& bm = mesh.boundary();
|
||||||
|
|
||||||
|
wordList nutBoundaryTypes(bm.size());
|
||||||
|
|
||||||
|
forAll(bm, patchI)
|
||||||
|
{
|
||||||
|
if (isA<wallFvPatch>(bm[patchI]))
|
||||||
|
{
|
||||||
|
nutBoundaryTypes[patchI] =
|
||||||
|
RASModels::nutLowReWallFunctionFvPatchScalarField::typeName;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nutBoundaryTypes[patchI] =
|
||||||
|
calculatedFvPatchField<scalar>::typeName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tmp<volScalarField> nut
|
||||||
|
(
|
||||||
|
new volScalarField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
fieldName,
|
||||||
|
mesh.time().timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE,
|
||||||
|
false
|
||||||
|
),
|
||||||
|
mesh,
|
||||||
|
dimensionedScalar("zero", dimArea/dimTime, 0.0),
|
||||||
|
nutBoundaryTypes
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
Info<< " Writing new " << fieldName << endl;
|
||||||
|
nut().write();
|
||||||
|
|
||||||
|
return nut;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
tmp<volScalarField> autoCreateEpsilon
|
tmp<volScalarField> autoCreateEpsilon
|
||||||
(
|
(
|
||||||
const word& fieldName,
|
const word& fieldName,
|
||||||
|
|||||||
@ -53,6 +53,13 @@ namespace incompressible
|
|||||||
const fvMesh& mesh
|
const fvMesh& mesh
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//- nut for Low-Reynolds number models
|
||||||
|
tmp<volScalarField> autoCreateLowReNut
|
||||||
|
(
|
||||||
|
const word& fieldName,
|
||||||
|
const fvMesh& mesh
|
||||||
|
);
|
||||||
|
|
||||||
//- epsilon
|
//- epsilon
|
||||||
tmp<volScalarField> autoCreateEpsilon
|
tmp<volScalarField> autoCreateEpsilon
|
||||||
(
|
(
|
||||||
|
|||||||
Reference in New Issue
Block a user