mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Added standard High Re k-omega turbulence model.
This commit is contained in:
@ -5,6 +5,7 @@ laminar/laminar.C
|
||||
kEpsilon/kEpsilon.C
|
||||
RNGkEpsilon/RNGkEpsilon.C
|
||||
realizableKE/realizableKE.C
|
||||
kOmega/kOmega.C
|
||||
kOmegaSST/kOmegaSST.C
|
||||
SpalartAllmaras/SpalartAllmaras.C
|
||||
LRR/LRR.C
|
||||
|
||||
268
src/turbulenceModels/RAS/incompressible/kOmega/kOmega.C
Normal file
268
src/turbulenceModels/RAS/incompressible/kOmega/kOmega.C
Normal file
@ -0,0 +1,268 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "kOmega.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "wallFvPatch.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace incompressible
|
||||
{
|
||||
namespace RASModels
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
defineTypeNameAndDebug(kOmega, 0);
|
||||
addToRunTimeSelectionTable(RASModel, kOmega, dictionary);
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
// Construct from components
|
||||
kOmega::kOmega
|
||||
(
|
||||
const volVectorField& U,
|
||||
const surfaceScalarField& phi,
|
||||
transportModel& lamTransportModel
|
||||
)
|
||||
:
|
||||
RASModel(typeName, U, phi, lamTransportModel),
|
||||
|
||||
Cmu_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"betaStar",
|
||||
coeffDict_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
beta_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"beta",
|
||||
coeffDict_,
|
||||
0.072
|
||||
)
|
||||
),
|
||||
alphaK_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaK",
|
||||
coeffDict_,
|
||||
0.5
|
||||
)
|
||||
),
|
||||
alphaOmega_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaOmega",
|
||||
coeffDict_,
|
||||
0.5
|
||||
)
|
||||
),
|
||||
|
||||
omega0_("omega0", dimless/dimTime, SMALL),
|
||||
omegaSmall_("omegaSmall", dimless/dimTime, SMALL),
|
||||
|
||||
k_
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"k",
|
||||
runTime_.timeName(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh_
|
||||
),
|
||||
|
||||
omega_
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"omega",
|
||||
runTime_.timeName(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh_
|
||||
),
|
||||
|
||||
nut_(k_/(omega_ + omegaSmall_))
|
||||
{
|
||||
# include "kOmegaWallViscosityI.H"
|
||||
|
||||
printCoeffs();
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
tmp<volSymmTensorField> kOmega::R() const
|
||||
{
|
||||
return tmp<volSymmTensorField>
|
||||
(
|
||||
new volSymmTensorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"R",
|
||||
runTime_.timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
((2.0/3.0)*I)*k_ - nut_*twoSymm(fvc::grad(U_)),
|
||||
k_.boundaryField().types()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
tmp<volSymmTensorField> kOmega::devReff() const
|
||||
{
|
||||
return tmp<volSymmTensorField>
|
||||
(
|
||||
new volSymmTensorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"devRhoReff",
|
||||
runTime_.timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
-nuEff()*dev(twoSymm(fvc::grad(U_)))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
tmp<fvVectorMatrix> kOmega::divDevReff(volVectorField& U) const
|
||||
{
|
||||
return
|
||||
(
|
||||
- fvm::laplacian(nuEff(), U)
|
||||
- fvc::div(nuEff()*dev(fvc::grad(U)().T()))
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
bool kOmega::read()
|
||||
{
|
||||
if (RASModel::read())
|
||||
{
|
||||
Cmu_.readIfPresent(coeffDict_);
|
||||
beta_.readIfPresent(coeffDict_);
|
||||
alphaK_.readIfPresent(coeffDict_);
|
||||
alphaOmega_.readIfPresent(coeffDict_);
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void kOmega::correct()
|
||||
{
|
||||
transportModel_.correct();
|
||||
|
||||
if (!turbulence_)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
RASModel::correct();
|
||||
|
||||
volScalarField G = nut_*2*magSqr(symm(fvc::grad(U_)));
|
||||
|
||||
# include "kOmegaWallFunctionsI.H"
|
||||
|
||||
// Turbulence specific dissipation rate equation
|
||||
tmp<fvScalarMatrix> omegaEqn
|
||||
(
|
||||
fvm::ddt(omega_)
|
||||
+ fvm::div(phi_, omega_)
|
||||
- fvm::Sp(fvc::div(phi_), omega_)
|
||||
- fvm::laplacian(DomegaEff(), omega_)
|
||||
==
|
||||
G*omega_/k_
|
||||
- fvm::Sp(beta_*omega_, omega_)
|
||||
);
|
||||
|
||||
omegaEqn().relax();
|
||||
|
||||
# include "wallOmegaI.H"
|
||||
|
||||
solve(omegaEqn);
|
||||
bound(omega_, omega0_);
|
||||
|
||||
|
||||
// Turbulent kinetic energy equation
|
||||
tmp<fvScalarMatrix> kEqn
|
||||
(
|
||||
fvm::ddt(k_)
|
||||
+ fvm::div(phi_, k_)
|
||||
- fvm::Sp(fvc::div(phi_), k_)
|
||||
- fvm::laplacian(DkEff(), k_)
|
||||
==
|
||||
G
|
||||
- fvm::Sp(Cmu_*omega_, k_)
|
||||
);
|
||||
|
||||
kEqn().relax();
|
||||
solve(kEqn);
|
||||
bound(k_, k0_);
|
||||
|
||||
|
||||
// Re-calculate viscosity
|
||||
nut_ = k_/omega_;
|
||||
|
||||
# include "kOmegaWallViscosityI.H"
|
||||
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace RASModels
|
||||
} // End namespace incompressible
|
||||
} // End namespace Foam
|
||||
|
||||
// ************************************************************************* //
|
||||
205
src/turbulenceModels/RAS/incompressible/kOmega/kOmega.H
Normal file
205
src/turbulenceModels/RAS/incompressible/kOmega/kOmega.H
Normal file
@ -0,0 +1,205 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Class
|
||||
Foam::incompressible::RASModels::kOmega
|
||||
|
||||
Description
|
||||
Standard high Reynolds-number k-omega turbulence model for
|
||||
incompressible flows.
|
||||
|
||||
References:
|
||||
@verbatim
|
||||
"Turbulence Modeling for CFD"
|
||||
D. C. Wilcox,
|
||||
DCW Industries, Inc., La Canada,
|
||||
California, 1998.
|
||||
@endverbatim
|
||||
|
||||
The default model coefficients correspond to the following:
|
||||
@verbatim
|
||||
kOmegaCoeffs
|
||||
{
|
||||
Cmu 0.09; // Equivalent to betaStar
|
||||
beta 0.072;
|
||||
alphak 0.5;
|
||||
alphaOmega 0.5;
|
||||
}
|
||||
@endverbatim
|
||||
|
||||
SourceFiles
|
||||
kOmega.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef kOmega_H
|
||||
#define kOmega_H
|
||||
|
||||
#include "RASModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace incompressible
|
||||
{
|
||||
namespace RASModels
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class kOmega Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class kOmega
|
||||
:
|
||||
public RASModel
|
||||
{
|
||||
// Private data
|
||||
|
||||
// Model coefficients
|
||||
|
||||
dimensionedScalar Cmu_;
|
||||
dimensionedScalar beta_;
|
||||
dimensionedScalar alphaK_;
|
||||
dimensionedScalar alphaOmega_;
|
||||
|
||||
|
||||
dimensionedScalar omega0_;
|
||||
dimensionedScalar omegaSmall_;
|
||||
|
||||
|
||||
// Fields
|
||||
|
||||
volScalarField k_;
|
||||
volScalarField omega_;
|
||||
volScalarField nut_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("kOmega");
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
kOmega
|
||||
(
|
||||
const volVectorField& U,
|
||||
const surfaceScalarField& phi,
|
||||
transportModel& transport
|
||||
);
|
||||
|
||||
|
||||
// Destructor
|
||||
|
||||
~kOmega()
|
||||
{}
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the turbulence viscosity
|
||||
tmp<volScalarField> nut() const
|
||||
{
|
||||
return nut_;
|
||||
}
|
||||
|
||||
//- Return the effective diffusivity for k
|
||||
tmp<volScalarField> DkEff() const
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DkEff", alphaK_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
//- Return the effective diffusivity for omega
|
||||
tmp<volScalarField> DomegaEff() const
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DomegaEff", alphaOmega_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
//- Return the turbulence kinetic energy
|
||||
tmp<volScalarField> k() const
|
||||
{
|
||||
return k_;
|
||||
}
|
||||
|
||||
//- Return the turbulence specific dissipation rate
|
||||
tmp<volScalarField> omega() const
|
||||
{
|
||||
return omega_;
|
||||
}
|
||||
|
||||
//- Return the turbulence kinetic energy dissipation rate
|
||||
tmp<volScalarField> epsilon() const
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"epsilon",
|
||||
mesh_.time().timeName(),
|
||||
mesh_
|
||||
),
|
||||
Cmu_*k_*omega_,
|
||||
omega_.boundaryField().types()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
//- Return the Reynolds stress tensor
|
||||
tmp<volSymmTensorField> R() const;
|
||||
|
||||
//- Return the effective stress tensor including the laminar stress
|
||||
tmp<volSymmTensorField> devReff() const;
|
||||
|
||||
//- Return the source term for the momentum equation
|
||||
tmp<fvVectorMatrix> divDevReff(volVectorField& U) const;
|
||||
|
||||
//- Solve the turbulence equations and correct the turbulence viscosity
|
||||
void correct();
|
||||
|
||||
//- Read turbulenceProperties dictionary
|
||||
bool read();
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace RASModels
|
||||
} // End namespace incompressible
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,125 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Global
|
||||
kOmegaWallFunctions
|
||||
|
||||
Description
|
||||
Calculate wall generation and frequency omega from wall-functions.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
{
|
||||
labelList cellBoundaryFaceCount(omega_.size(), 0);
|
||||
|
||||
scalar Cmu25 = pow(Cmu_.value(), 0.25);
|
||||
|
||||
const fvPatchList& patches = mesh_.boundary();
|
||||
|
||||
//- Initialise the near-wall omega and G fields to zero
|
||||
forAll(patches, patchi)
|
||||
{
|
||||
const fvPatch& curPatch = patches[patchi];
|
||||
|
||||
if (isType<wallFvPatch>(curPatch))
|
||||
{
|
||||
forAll(curPatch, facei)
|
||||
{
|
||||
label faceCelli = curPatch.faceCells()[facei];
|
||||
|
||||
omega_[faceCelli] = 0.0;
|
||||
G[faceCelli] = 0.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//- Accumulate the wall face contributions to omega and G
|
||||
// Increment cellBoundaryFaceCount for each face for averaging
|
||||
forAll(patches, patchi)
|
||||
{
|
||||
const fvPatch& curPatch = patches[patchi];
|
||||
|
||||
if (isType<wallFvPatch>(curPatch))
|
||||
{
|
||||
# include "checkkOmegaPatchFieldTypes.H"
|
||||
|
||||
const scalarField& nuw = nu().boundaryField()[patchi];
|
||||
const scalarField& nutw = nut_.boundaryField()[patchi];
|
||||
|
||||
scalarField magFaceGradU =
|
||||
mag(U_.boundaryField()[patchi].snGrad());
|
||||
|
||||
forAll(curPatch, facei)
|
||||
{
|
||||
label faceCelli = curPatch.faceCells()[facei];
|
||||
|
||||
scalar yPlus =
|
||||
Cmu25*y_[patchi][facei]
|
||||
*sqrt(k_[faceCelli])
|
||||
/nuw[facei];
|
||||
|
||||
// For corner cells (with two boundary or more faces),
|
||||
// omega and G in the near-wall cell are calculated
|
||||
// as an average
|
||||
|
||||
cellBoundaryFaceCount[faceCelli]++;
|
||||
|
||||
omega_[faceCelli] +=
|
||||
sqrt(k_[faceCelli])
|
||||
/(Cmu25*kappa_.value()*y_[patchi][facei]);
|
||||
|
||||
if (yPlus > yPlusLam_)
|
||||
{
|
||||
G[faceCelli] +=
|
||||
(nutw[facei] + nuw[facei])
|
||||
*magFaceGradU[facei]
|
||||
*Cmu25*sqrt(k_[faceCelli])
|
||||
/(kappa_.value()*y_[patchi][facei]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Perform the averaging
|
||||
|
||||
forAll(patches, patchi)
|
||||
{
|
||||
const fvPatch& curPatch = patches[patchi];
|
||||
|
||||
if (isType<wallFvPatch>(curPatch))
|
||||
{
|
||||
forAll(curPatch, facei)
|
||||
{
|
||||
label faceCelli = curPatch.faceCells()[facei];
|
||||
|
||||
omega_[faceCelli] /= cellBoundaryFaceCount[faceCelli];
|
||||
G[faceCelli] /= cellBoundaryFaceCount[faceCelli];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,70 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Global
|
||||
kOmegaWallViscosity
|
||||
|
||||
Description
|
||||
Calculate wall viscosity from wall-functions.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
{
|
||||
scalar Cmu25 = pow(Cmu_.value(), 0.25);
|
||||
|
||||
const fvPatchList& patches = mesh_.boundary();
|
||||
|
||||
forAll(patches, patchi)
|
||||
{
|
||||
const fvPatch& curPatch = patches[patchi];
|
||||
|
||||
if (isType<wallFvPatch>(curPatch))
|
||||
{
|
||||
const scalarField& nuw = nu().boundaryField()[patchi];
|
||||
scalarField& nutw = nut_.boundaryField()[patchi];
|
||||
|
||||
forAll(curPatch, facei)
|
||||
{
|
||||
label faceCelli = curPatch.faceCells()[facei];
|
||||
|
||||
scalar yPlus =
|
||||
Cmu25*y_[patchi][facei]*sqrt(k_[faceCelli])/nuw[facei];
|
||||
|
||||
if (yPlus > yPlusLam_)
|
||||
{
|
||||
nutw[facei] =
|
||||
nuw[facei]
|
||||
*(yPlus*kappa_.value()/log(E_.value()*yPlus) - 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
nutw[facei] = 0.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
51
src/turbulenceModels/RAS/incompressible/kOmega/wallOmegaI.H
Normal file
51
src/turbulenceModels/RAS/incompressible/kOmega/wallOmegaI.H
Normal file
@ -0,0 +1,51 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Global
|
||||
wallOmega
|
||||
|
||||
Description
|
||||
Set wall dissipation in the omega matrix
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
{
|
||||
const fvPatchList& patches = mesh_.boundary();
|
||||
|
||||
forAll(patches, patchi)
|
||||
{
|
||||
const fvPatch& p = patches[patchi];
|
||||
|
||||
if (isType<wallFvPatch>(p))
|
||||
{
|
||||
omegaEqn().setValues
|
||||
(
|
||||
p.faceCells(),
|
||||
omega_.boundaryField()[patchi].patchInternalField()
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -238,6 +238,7 @@ public:
|
||||
return k_;
|
||||
}
|
||||
|
||||
//- Return the turbulence specific dissipation rate
|
||||
tmp<volScalarField> omega() const
|
||||
{
|
||||
return omega_;
|
||||
|
||||
Reference in New Issue
Block a user