mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
relocation of turbulence models and renaming namespaces
This commit is contained in:
@ -9,7 +9,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/combustion/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
||||
|
||||
@ -35,7 +35,7 @@ namespace Foam
|
||||
{
|
||||
namespace compressible
|
||||
{
|
||||
namespace turbulenceModels
|
||||
namespace RAS
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
@ -55,12 +55,15 @@ PDRkEpsilon::PDRkEpsilon
|
||||
:
|
||||
turbulenceModel(typeName, rho, U, phi, thermophysicalModel),
|
||||
|
||||
Cmu(turbulenceModelCoeffs_.lookup("Cmu")),
|
||||
C1(turbulenceModelCoeffs_.lookup("C1")),
|
||||
C2(turbulenceModelCoeffs_.lookup("C2")),
|
||||
alphak(turbulenceModelCoeffs_.lookup("alphak")),
|
||||
alphaEps(turbulenceModelCoeffs_.lookup("alphaEps")),
|
||||
alphah(turbulenceModelCoeffs_.lookup("alphah")),
|
||||
Cmu(turbulenceModelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.09)),
|
||||
C1(turbulenceModelCoeffs_.lookupOrAddDefault<scalar>("C1", 1.44)),
|
||||
C2(turbulenceModelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.92)),
|
||||
alphak(turbulenceModelCoeffs_.lookupOrAddDefault<scalar>("alphak", 1.0)),
|
||||
alphaEps
|
||||
(
|
||||
turbulenceModelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 0.76923)
|
||||
),
|
||||
alphah(turbulenceModelCoeffs_.lookupOrAddDefault<scalar>("alphah", 1.0)),
|
||||
|
||||
k_
|
||||
(
|
||||
@ -102,6 +105,8 @@ PDRkEpsilon::PDRkEpsilon
|
||||
)
|
||||
{
|
||||
# include "wallViscosityI.H"
|
||||
|
||||
printCoeffs();
|
||||
}
|
||||
|
||||
|
||||
@ -161,12 +166,12 @@ bool PDRkEpsilon::read()
|
||||
{
|
||||
if (turbulenceModel::read())
|
||||
{
|
||||
turbulenceModelCoeffs_.lookup("Cmu") >> Cmu;
|
||||
turbulenceModelCoeffs_.lookup("C1") >> C1;
|
||||
turbulenceModelCoeffs_.lookup("C2") >> C2;
|
||||
turbulenceModelCoeffs_.lookup("alphak") >> alphak;
|
||||
turbulenceModelCoeffs_.lookup("alphaEps") >> alphaEps;
|
||||
turbulenceModelCoeffs_.lookup("alphah") >> alphah;
|
||||
turbulenceModelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
turbulenceModelCoeffs_.readIfPresent<scalar>("C1", C1);
|
||||
turbulenceModelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
turbulenceModelCoeffs_.readIfPresent<scalar>("alphak", alphak);
|
||||
turbulenceModelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
turbulenceModelCoeffs_.readIfPresent<scalar>("alphah", alphah);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -259,7 +264,7 @@ void PDRkEpsilon::correct()
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace turbulenceModels
|
||||
} // End namespace RAS
|
||||
} // End namespace compressible
|
||||
} // End namespace Foam
|
||||
|
||||
|
||||
@ -45,7 +45,7 @@ namespace Foam
|
||||
{
|
||||
namespace compressible
|
||||
{
|
||||
namespace turbulenceModels
|
||||
namespace RAS
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
@ -58,12 +58,12 @@ class PDRkEpsilon
|
||||
{
|
||||
// Private data
|
||||
|
||||
dimensionedScalar Cmu;
|
||||
dimensionedScalar C1;
|
||||
dimensionedScalar C2;
|
||||
dimensionedScalar alphak;
|
||||
dimensionedScalar alphaEps;
|
||||
dimensionedScalar alphah;
|
||||
scalar Cmu;
|
||||
scalar C1;
|
||||
scalar C2;
|
||||
scalar alphak;
|
||||
scalar alphaEps;
|
||||
scalar alphah;
|
||||
|
||||
volScalarField k_;
|
||||
volScalarField epsilon_;
|
||||
@ -158,7 +158,7 @@ public:
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace turbulenceModels
|
||||
} // End namespace RAS
|
||||
} // End namespace compressible
|
||||
} // End namespace Foam
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/combustion/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -3,8 +3,8 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/sampling/lnInclude \
|
||||
-I$(LIB_SRC)/LESmodels \
|
||||
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/combustion/lnInclude \
|
||||
|
||||
@ -6,7 +6,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/combustion/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels/compressible/lnInclude
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS/compressible/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lengine \
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
EXE_INC = \
|
||||
-I../engineFoam \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/dieselSpray/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/liquids/lnInclude \
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
EXE_INC = \
|
||||
-I../dieselEngineFoam \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/dieselSpray/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/liquids/lnInclude \
|
||||
|
||||
@ -4,7 +4,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/combustion/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude \
|
||||
-I../XiFoam
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
EXE_INC = \
|
||||
-I../XiFoam \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/combustion/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
|
||||
@ -2,8 +2,8 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/LESmodels \
|
||||
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude
|
||||
-I$(LIB_SRC)/turbulenceModels/LES \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
|
||||
@ -2,7 +2,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/cfdTools \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
|
||||
@ -3,7 +3,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
|
||||
@ -2,7 +2,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/cfdTools \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
|
||||
@ -2,7 +2,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
|
||||
@ -2,7 +2,7 @@ EXE_INC = \
|
||||
-I../sonicFoam \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
|
||||
@ -0,0 +1,14 @@
|
||||
nAveragingSteps++;
|
||||
|
||||
scalar nm1Coeff = scalar(nAveragingSteps - 1)/nAveragingSteps;
|
||||
scalar nCoeff = 1.0/nAveragingSteps;
|
||||
|
||||
R += sqr(Umean);
|
||||
Umean = nm1Coeff*Umean + nCoeff*U;
|
||||
R = nm1Coeff*R + nCoeff*sqr(U) - sqr(Umean);
|
||||
Bmean = nm1Coeff*Bmean + nCoeff*sgsModel->B();
|
||||
epsilonMean = nm1Coeff*epsilonMean + nCoeff*sgsModel->epsilon();
|
||||
|
||||
pPrime2Mean += sqr(pMean);
|
||||
pMean = nm1Coeff*pMean + nCoeff*p;
|
||||
pPrime2Mean = nm1Coeff*pPrime2Mean + nCoeff*sqr(p) - sqr(pMean);
|
||||
@ -0,0 +1,14 @@
|
||||
nAveragingSteps++;
|
||||
|
||||
scalar nm1Coeff = scalar(nAveragingSteps - 1)/nAveragingSteps;
|
||||
scalar nCoeff = 1.0/nAveragingSteps;
|
||||
|
||||
R += sqr(Umean);
|
||||
Umean = nm1Coeff*Umean + nCoeff*U;
|
||||
R = nm1Coeff*R + nCoeff*sqr(U) - sqr(Umean);
|
||||
Bmean = nm1Coeff*Bmean + nCoeff*sgsModel->B();
|
||||
epsilonMean = nm1Coeff*epsilonMean + nCoeff*sgsModel->epsilon();
|
||||
|
||||
pPrime2Mean += sqr(pMean);
|
||||
pMean = nm1Coeff*pMean + nCoeff*p;
|
||||
pPrime2Mean = nm1Coeff*pPrime2Mean + nCoeff*sqr(p) - sqr(pMean);
|
||||
@ -0,0 +1,14 @@
|
||||
nAveragingSteps++;
|
||||
|
||||
scalar nm1Coeff = scalar(nAveragingSteps - 1)/nAveragingSteps;
|
||||
scalar nCoeff = 1.0/nAveragingSteps;
|
||||
|
||||
R += sqr(Umean);
|
||||
Umean = nm1Coeff*Umean + nCoeff*U;
|
||||
R = nm1Coeff*R + nCoeff*sqr(U) - sqr(Umean);
|
||||
Bmean = nm1Coeff*Bmean + nCoeff*sgsModel->B();
|
||||
epsilonMean = nm1Coeff*epsilonMean + nCoeff*sgsModel->epsilon();
|
||||
|
||||
pPrime2Mean += sqr(pMean);
|
||||
pMean = nm1Coeff*pMean + nCoeff*p;
|
||||
pPrime2Mean = nm1Coeff*pPrime2Mean + nCoeff*sqr(p) - sqr(pMean);
|
||||
@ -0,0 +1,234 @@
|
||||
label nAveragingSteps = 1;
|
||||
|
||||
IFstream nAveragingStepsFile
|
||||
(
|
||||
runTime.path()/runTime.timeName()/"uniform"/"nAveragingSteps.raw"
|
||||
);
|
||||
|
||||
|
||||
autoPtr<volVectorField> UmeanPtr;
|
||||
autoPtr<volSymmTensorField> RPtr;
|
||||
autoPtr<volSymmTensorField> BmeanPtr;
|
||||
autoPtr<volScalarField> epsilonMeanPtr;
|
||||
|
||||
autoPtr<volScalarField> pMeanPtr;
|
||||
autoPtr<volScalarField> pPrime2MeanPtr;
|
||||
|
||||
if (nAveragingStepsFile.good())
|
||||
{
|
||||
nAveragingStepsFile >> nAveragingSteps;
|
||||
|
||||
Info<< "Reading field Umean\n" << endl;
|
||||
UmeanPtr.reset
|
||||
(
|
||||
new volVectorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Umean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "\nReading field R\n" << endl;
|
||||
RPtr.reset
|
||||
(
|
||||
new volSymmTensorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"R",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "\nReading field Bmean\n" << endl;
|
||||
BmeanPtr.reset
|
||||
(
|
||||
new volSymmTensorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Bmean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "\nReading field epsilonMean\n" << endl;
|
||||
epsilonMeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"epsilonMean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Reading field pMean\n" << endl;
|
||||
pMeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"pMean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Reading field pPrime2Mean\n" << endl;
|
||||
pPrime2MeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"pPrime2Mean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
Info<< "Creating field Umean\n" << endl;
|
||||
UmeanPtr.reset
|
||||
(
|
||||
new volVectorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Umean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
U
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating field R\n" << endl;
|
||||
RPtr.reset
|
||||
(
|
||||
new volSymmTensorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"R",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
sqr(U) - sqr(UmeanPtr())
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating field Bmean\n" << endl;
|
||||
BmeanPtr.reset
|
||||
(
|
||||
new volSymmTensorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Bmean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
sgsModel->B()
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating field epsilonMean\n" << endl;
|
||||
epsilonMeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"epsilonMean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
sgsModel->epsilon()
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating field pMean\n" << endl;
|
||||
pMeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"pMean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
p
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating field pPrime2Mean\n" << endl;
|
||||
pPrime2MeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"pPrime2Mean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
sqr(p) - sqr(pMeanPtr())
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
volVectorField& Umean = UmeanPtr();
|
||||
volSymmTensorField& R = RPtr();
|
||||
volSymmTensorField& Bmean = BmeanPtr();
|
||||
volScalarField& epsilonMean = epsilonMeanPtr();
|
||||
|
||||
volScalarField& pMean = pMeanPtr();
|
||||
volScalarField& pPrime2Mean = pPrime2MeanPtr();
|
||||
@ -0,0 +1,234 @@
|
||||
label nAveragingSteps = 1;
|
||||
|
||||
IFstream nAveragingStepsFile
|
||||
(
|
||||
runTime.path()/runTime.timeName()/"uniform"/"nAveragingSteps.raw"
|
||||
);
|
||||
|
||||
|
||||
autoPtr<volVectorField> UmeanPtr;
|
||||
autoPtr<volSymmTensorField> RPtr;
|
||||
autoPtr<volSymmTensorField> BmeanPtr;
|
||||
autoPtr<volScalarField> epsilonMeanPtr;
|
||||
|
||||
autoPtr<volScalarField> pMeanPtr;
|
||||
autoPtr<volScalarField> pPrime2MeanPtr;
|
||||
|
||||
if (nAveragingStepsFile.good())
|
||||
{
|
||||
nAveragingStepsFile >> nAveragingSteps;
|
||||
|
||||
Info<< "Reading field Umean\n" << endl;
|
||||
UmeanPtr.reset
|
||||
(
|
||||
new volVectorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Umean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "\nReading field R\n" << endl;
|
||||
RPtr.reset
|
||||
(
|
||||
new volSymmTensorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"R",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "\nReading field Bmean\n" << endl;
|
||||
BmeanPtr.reset
|
||||
(
|
||||
new volSymmTensorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Bmean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "\nReading field epsilonMean\n" << endl;
|
||||
epsilonMeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"epsilonMean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Reading field pMean\n" << endl;
|
||||
pMeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"pMean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Reading field pPrime2Mean\n" << endl;
|
||||
pPrime2MeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"pPrime2Mean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
Info<< "Creating field Umean\n" << endl;
|
||||
UmeanPtr.reset
|
||||
(
|
||||
new volVectorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Umean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
U
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating field R\n" << endl;
|
||||
RPtr.reset
|
||||
(
|
||||
new volSymmTensorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"R",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
sqr(U) - sqr(UmeanPtr())
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating field Bmean\n" << endl;
|
||||
BmeanPtr.reset
|
||||
(
|
||||
new volSymmTensorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Bmean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
sgsModel->B()
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating field epsilonMean\n" << endl;
|
||||
epsilonMeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"epsilonMean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
sgsModel->epsilon()
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating field pMean\n" << endl;
|
||||
pMeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"pMean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
p
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating field pPrime2Mean\n" << endl;
|
||||
pPrime2MeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"pPrime2Mean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
sqr(p) - sqr(pMeanPtr())
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
volVectorField& Umean = UmeanPtr();
|
||||
volSymmTensorField& R = RPtr();
|
||||
volSymmTensorField& Bmean = BmeanPtr();
|
||||
volScalarField& epsilonMean = epsilonMeanPtr();
|
||||
|
||||
volScalarField& pMean = pMeanPtr();
|
||||
volScalarField& pPrime2Mean = pPrime2MeanPtr();
|
||||
@ -0,0 +1,234 @@
|
||||
label nAveragingSteps = 1;
|
||||
|
||||
IFstream nAveragingStepsFile
|
||||
(
|
||||
runTime.path()/runTime.timeName()/"uniform"/"nAveragingSteps.raw"
|
||||
);
|
||||
|
||||
|
||||
autoPtr<volVectorField> UmeanPtr;
|
||||
autoPtr<volSymmTensorField> RPtr;
|
||||
autoPtr<volSymmTensorField> BmeanPtr;
|
||||
autoPtr<volScalarField> epsilonMeanPtr;
|
||||
|
||||
autoPtr<volScalarField> pMeanPtr;
|
||||
autoPtr<volScalarField> pPrime2MeanPtr;
|
||||
|
||||
if (nAveragingStepsFile.good())
|
||||
{
|
||||
nAveragingStepsFile >> nAveragingSteps;
|
||||
|
||||
Info<< "Reading field Umean\n" << endl;
|
||||
UmeanPtr.reset
|
||||
(
|
||||
new volVectorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Umean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "\nReading field R\n" << endl;
|
||||
RPtr.reset
|
||||
(
|
||||
new volSymmTensorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"R",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "\nReading field Bmean\n" << endl;
|
||||
BmeanPtr.reset
|
||||
(
|
||||
new volSymmTensorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Bmean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "\nReading field epsilonMean\n" << endl;
|
||||
epsilonMeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"epsilonMean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Reading field pMean\n" << endl;
|
||||
pMeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"pMean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Reading field pPrime2Mean\n" << endl;
|
||||
pPrime2MeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"pPrime2Mean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
Info<< "Creating field Umean\n" << endl;
|
||||
UmeanPtr.reset
|
||||
(
|
||||
new volVectorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Umean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
U
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating field R\n" << endl;
|
||||
RPtr.reset
|
||||
(
|
||||
new volSymmTensorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"R",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
sqr(U) - sqr(UmeanPtr())
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating field Bmean\n" << endl;
|
||||
BmeanPtr.reset
|
||||
(
|
||||
new volSymmTensorField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Bmean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
sgsModel->B()
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating field epsilonMean\n" << endl;
|
||||
epsilonMeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"epsilonMean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
sgsModel->epsilon()
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating field pMean\n" << endl;
|
||||
pMeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"pMean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
p
|
||||
)
|
||||
);
|
||||
|
||||
Info<< "Creating field pPrime2Mean\n" << endl;
|
||||
pPrime2MeanPtr.reset
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"pPrime2Mean",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
sqr(p) - sqr(pMeanPtr())
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
volVectorField& Umean = UmeanPtr();
|
||||
volSymmTensorField& R = RPtr();
|
||||
volSymmTensorField& Bmean = BmeanPtr();
|
||||
volScalarField& epsilonMean = epsilonMeanPtr();
|
||||
|
||||
volScalarField& pMean = pMeanPtr();
|
||||
volScalarField& pPrime2Mean = pPrime2MeanPtr();
|
||||
@ -0,0 +1,18 @@
|
||||
if (runTime.outputTime())
|
||||
{
|
||||
OFstream nAveragingStepsFile
|
||||
(
|
||||
runTime.path()/runTime.timeName()/"uniform"/"nAveragingSteps.raw"
|
||||
);
|
||||
|
||||
if (nAveragingStepsFile.good())
|
||||
{
|
||||
nAveragingStepsFile << nAveragingSteps << endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
FatalErrorIn(args.executable())
|
||||
<< "Cannot open file " << nAveragingStepsFile.name()
|
||||
<< abort(FatalError);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
if (runTime.outputTime())
|
||||
{
|
||||
OFstream nAveragingStepsFile
|
||||
(
|
||||
runTime.path()/runTime.timeName()/"uniform"/"nAveragingSteps.raw"
|
||||
);
|
||||
|
||||
if (nAveragingStepsFile.good())
|
||||
{
|
||||
nAveragingStepsFile << nAveragingSteps << endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
FatalErrorIn(args.executable())
|
||||
<< "Cannot open file " << nAveragingStepsFile.name()
|
||||
<< abort(FatalError);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
if (runTime.outputTime())
|
||||
{
|
||||
OFstream nAveragingStepsFile
|
||||
(
|
||||
runTime.path()/runTime.timeName()/"uniform"/"nAveragingSteps.raw"
|
||||
);
|
||||
|
||||
if (nAveragingStepsFile.good())
|
||||
{
|
||||
nAveragingStepsFile << nAveragingSteps << endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
FatalErrorIn(args.executable())
|
||||
<< "Cannot open file " << nAveragingStepsFile.name()
|
||||
<< abort(FatalError);
|
||||
}
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I../XiFoam
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -2,7 +2,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/cfdTools \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
|
||||
@ -3,7 +3,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
|
||||
@ -7,7 +7,7 @@ EXE_INC = \
|
||||
-IderivedFvPatchFields/solidWallHeatFluxTemperatureCoupled \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
|
||||
@ -120,7 +120,7 @@ public:
|
||||
inline const fvMesh& neighbourRegion() const;
|
||||
|
||||
//- Return the neighbour patch ID
|
||||
inline const label neighbourPatchID() const;
|
||||
inline label neighbourPatchID() const;
|
||||
|
||||
//- Return a reference to the neighbour patch
|
||||
inline const fvPatch& neighbourPatch() const;
|
||||
|
||||
@ -55,7 +55,7 @@ inline const Foam::fvMesh& Foam::coupleManager::neighbourRegion() const
|
||||
}
|
||||
|
||||
|
||||
inline const Foam::label Foam::coupleManager::neighbourPatchID() const
|
||||
inline Foam::label Foam::coupleManager::neighbourPatchID() const
|
||||
{
|
||||
return neighbourRegion().boundaryMesh().findPatchID(neighbourPatchName_);
|
||||
}
|
||||
|
||||
@ -2,8 +2,8 @@ EXE_INC = \
|
||||
-I../buoyantFoam \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/LESmodels \
|
||||
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude
|
||||
-I$(LIB_SRC)/turbulenceModels/LES \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/sampling/lnInclude
|
||||
|
||||
|
||||
@ -31,9 +31,9 @@
|
||||
|
||||
singlePhaseTransportModel laminarTransport(U, phi);
|
||||
|
||||
autoPtr<turbulenceModel> turbulence
|
||||
autoPtr<incompressible::turbulenceModel> turbulence
|
||||
(
|
||||
turbulenceModel::New(U, phi, laminarTransport)
|
||||
incompressible::turbulenceModel::New(U, phi, laminarTransport)
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/LESmodels \
|
||||
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/sampling/lnInclude \
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/LESmodels \
|
||||
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/transportModels
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
|
||||
singlePhaseTransportModel laminarTransport(U, phi);
|
||||
|
||||
autoPtr<turbulenceModel> turbulence
|
||||
autoPtr<incompressible::turbulenceModel> turbulence
|
||||
(
|
||||
turbulenceModel::New(U, phi, laminarTransport)
|
||||
incompressible::turbulenceModel::New(U, phi, laminarTransport)
|
||||
);
|
||||
|
||||
@ -2,7 +2,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
||||
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude
|
||||
|
||||
|
||||
@ -37,9 +37,9 @@
|
||||
|
||||
singlePhaseTransportModel laminarTransport(U, phi);
|
||||
|
||||
autoPtr<turbulenceModel> turbulence
|
||||
autoPtr<incompressible::turbulenceModel> turbulence
|
||||
(
|
||||
turbulenceModel::New(U, phi, laminarTransport)
|
||||
incompressible::turbulenceModel::New(U, phi, laminarTransport)
|
||||
);
|
||||
|
||||
Info<< "Reading field rAU if present\n" << endl;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude
|
||||
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
|
||||
singlePhaseTransportModel laminarTransport(U, phi);
|
||||
|
||||
autoPtr<turbulenceModel> turbulence
|
||||
autoPtr<incompressible::turbulenceModel> turbulence
|
||||
(
|
||||
turbulenceModel::New(U, phi, laminarTransport)
|
||||
incompressible::turbulenceModel::New(U, phi, laminarTransport)
|
||||
);
|
||||
|
||||
@ -4,8 +4,8 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
|
||||
-I$(LIB_SRC)/LESmodels \
|
||||
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -2,8 +2,8 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
|
||||
@ -86,10 +86,10 @@
|
||||
// Construct interface from gamma distribution
|
||||
interfaceProperties interface(gamma, U, twoPhaseProperties);
|
||||
|
||||
// Construct LES model
|
||||
autoPtr<turbulenceModel> turbulence
|
||||
// Construct incompressible RAS model
|
||||
autoPtr<incompressible::turbulenceModel> turbulence
|
||||
(
|
||||
turbulenceModel::New(U, phi, twoPhaseProperties)
|
||||
incompressible::turbulenceModel::New(U, phi, twoPhaseProperties)
|
||||
);
|
||||
|
||||
wordList pcorrTypes(pd.boundaryField().types());
|
||||
|
||||
@ -2,8 +2,8 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
|
||||
-I$(LIB_SRC)/LESmodels \
|
||||
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \
|
||||
-IphaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude
|
||||
|
||||
|
||||
@ -3,9 +3,9 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
|
||||
-I$(LIB_SRC)/LESmodels \
|
||||
-I$(LIB_SRC)/LESmodels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/barotropicCompressibilityModel/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -31,7 +31,7 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace LESmodels
|
||||
namespace LES
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
@ -64,8 +64,10 @@ devOneEqEddy::devOneEqEddy
|
||||
mesh_
|
||||
),
|
||||
|
||||
ck_(LESmodelProperties().lookup("ck"))
|
||||
{}
|
||||
ck_(LESmodelProperties().lookupOrAddDefault("ck", 0.07))
|
||||
{
|
||||
printCoeffs();
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
@ -99,7 +101,7 @@ bool devOneEqEddy::read()
|
||||
{
|
||||
if (GenEddyVisc::read())
|
||||
{
|
||||
LESmodelProperties().lookup("ck") >> ck_;
|
||||
LESmodelProperties().readIfPresent<scalar>("ck", ck_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -112,7 +114,7 @@ bool devOneEqEddy::read()
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace LESmodels
|
||||
} // End namespace LES
|
||||
} // End namespace Foam
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -61,7 +61,7 @@ SourceFiles
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace LESmodels
|
||||
namespace LES
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
@ -76,7 +76,7 @@ class devOneEqEddy
|
||||
|
||||
volScalarField k_;
|
||||
|
||||
dimensionedScalar ck_;
|
||||
scalar ck_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
@ -4,8 +4,8 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
|
||||
-I$(LIB_SRC)/LESmodels \
|
||||
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -3,7 +3,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/thermophysicalModels/barotropicCompressibilityModel/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -79,7 +79,7 @@
|
||||
twoPhaseMixture twoPhaseProperties(U, phiv, "gamma");
|
||||
|
||||
// Create RAS turbulence model
|
||||
autoPtr<turbulenceModel> turbulence
|
||||
autoPtr<incompressible::turbulenceModel> turbulence
|
||||
(
|
||||
turbulenceModel::New(U, phiv, twoPhaseProperties)
|
||||
incompressible::turbulenceModel::New(U, phiv, twoPhaseProperties)
|
||||
);
|
||||
|
||||
@ -3,7 +3,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -110,7 +110,7 @@
|
||||
interfaceProperties interface(gamma, U, twoPhaseProperties);
|
||||
|
||||
// Construct LES model
|
||||
autoPtr<turbulenceModel> turbulence
|
||||
autoPtr<incompressible::turbulenceModel> turbulence
|
||||
(
|
||||
turbulenceModel::New(U, phi, twoPhaseProperties)
|
||||
incompressible::turbulenceModel::New(U, phi, twoPhaseProperties)
|
||||
);
|
||||
|
||||
@ -0,0 +1,53 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2007 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::hashSetUnionEqOp
|
||||
|
||||
Description
|
||||
Union operation to combine hash sets
|
||||
Usage: combineReduce(myWordHashSet, unionEqOp<word>());
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
template<class Type>
|
||||
class hashSetUnionEqOp
|
||||
{
|
||||
public:
|
||||
void operator()(HashSet<Type>& x, const HashSet<Type>& y) const
|
||||
{
|
||||
forAllConstIter(typename HashSet<Type>, y, iter)
|
||||
{
|
||||
x.insert(iter.key());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
@ -0,0 +1,53 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2007 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::hashTableUnionEqOp
|
||||
|
||||
Description
|
||||
Union operation to combine hash sets
|
||||
Usage: combineReduce(myWordHashSet, unionEqOp<word>());
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
template<class Type>
|
||||
class hashTableUnionEqOp
|
||||
{
|
||||
public:
|
||||
void operator()(HashTable<Type>& x, const HashTable<Type>& y) const
|
||||
{
|
||||
forAllConstIter(typename HashTable<Type>, y, iter)
|
||||
{
|
||||
x.insert(iter.key(), iter());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
@ -2,9 +2,9 @@ EXE_INC = \
|
||||
-I$(FOAM_SRC)/postProcessing/postCalc \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/LESmodels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -148,9 +148,14 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
|
||||
|
||||
if (turbulenceProperties.found("turbulenceModel"))
|
||||
{
|
||||
autoPtr<turbulenceModel> turbulenceModel
|
||||
autoPtr<incompressible::turbulenceModel> turbulenceModel
|
||||
(
|
||||
turbulenceModel::New(U, phi, laminarTransport)
|
||||
incompressible::turbulenceModel::New
|
||||
(
|
||||
U,
|
||||
phi,
|
||||
laminarTransport
|
||||
)
|
||||
);
|
||||
|
||||
execFlowFunctionObjects(args, runTime);
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/transportModels
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/transportModels
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
|
||||
singlePhaseTransportModel laminarTransport(U, phi);
|
||||
|
||||
autoPtr<turbulenceModel> turbulence
|
||||
autoPtr<incompressible::turbulenceModel> turbulence
|
||||
(
|
||||
turbulenceModel::New(U, phi, laminarTransport)
|
||||
incompressible::turbulenceModel::New(U, phi, laminarTransport)
|
||||
);
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/transportModels
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
|
||||
singlePhaseTransportModel laminarTransport(U, phi);
|
||||
|
||||
autoPtr<turbulenceModel> turbulence
|
||||
autoPtr<incompressible::turbulenceModel> turbulence
|
||||
(
|
||||
turbulenceModel::New(U, phi, laminarTransport)
|
||||
incompressible::turbulenceModel::New(U, phi, laminarTransport)
|
||||
);
|
||||
|
||||
@ -4,9 +4,9 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/sampling/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/LESmodels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -100,9 +100,14 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
|
||||
|
||||
if (turbulenceProperties.found("turbulenceModel"))
|
||||
{
|
||||
autoPtr<turbulenceModel> turbulenceModel
|
||||
autoPtr<incompressible::turbulenceModel> turbulenceModel
|
||||
(
|
||||
turbulenceModel::New(U, phi, laminarTransport)
|
||||
incompressible::turbulenceModel::New
|
||||
(
|
||||
U,
|
||||
phi,
|
||||
laminarTransport
|
||||
)
|
||||
);
|
||||
|
||||
PePtr.set
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/transportModels
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/combustion/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/transportModels
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
|
||||
singlePhaseTransportModel laminarTransport(U, phi);
|
||||
|
||||
autoPtr<turbulenceModel> turbulence
|
||||
autoPtr<incompressible::turbulenceModel> turbulence
|
||||
(
|
||||
turbulenceModel::New(U, phi, laminarTransport)
|
||||
incompressible::turbulenceModel::New(U, phi, laminarTransport)
|
||||
);
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/LESmodels \
|
||||
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES \
|
||||
-I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/turbulenceModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/RAS \
|
||||
-I$(LIB_SRC)/transportModels
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -83,9 +83,9 @@ int main(int argc, char *argv[])
|
||||
|
||||
singlePhaseTransportModel laminarTransport(U, phi);
|
||||
|
||||
autoPtr<turbulenceModel> turbulence
|
||||
autoPtr<incompressible::turbulenceModel> turbulence
|
||||
(
|
||||
turbulenceModel::New(U, phi, laminarTransport)
|
||||
incompressible::turbulenceModel::New(U, phi, laminarTransport)
|
||||
);
|
||||
|
||||
const fvPatchList& patches = mesh.boundary();
|
||||
|
||||
@ -29,7 +29,6 @@ wmake libso randomProcesses
|
||||
( cd thermophysicalModels && ./Allwmake )
|
||||
( cd transportModels && ./Allwmake )
|
||||
( cd turbulenceModels && ./Allwmake )
|
||||
( cd LESmodels && ./Allwmake )
|
||||
( cd lagrangian && ./Allwmake )
|
||||
( cd postProcessing && ./Allwmake )
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
set -x
|
||||
|
||||
wmake libso incompressible
|
||||
wmake libso compressible
|
||||
( cd RAS && ./Allwmake )
|
||||
( cd LES && ./Allwmake )
|
||||
|
||||
@ -33,7 +33,7 @@ namespace Foam
|
||||
{
|
||||
namespace compressible
|
||||
{
|
||||
namespace LESmodels
|
||||
namespace LES
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
@ -127,7 +127,7 @@ bool DeardorffDiffStress::read()
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace LESmodels
|
||||
} // End namespace LES
|
||||
} // End namespace compressible
|
||||
} // End namespace Foam
|
||||
|
||||
@ -62,7 +62,7 @@ namespace Foam
|
||||
{
|
||||
namespace compressible
|
||||
{
|
||||
namespace LESmodels
|
||||
namespace LES
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
@ -130,7 +130,7 @@ public:
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace LESmodels
|
||||
} // End namespace LES
|
||||
} // End namespace compressible
|
||||
} // End namespace Foam
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user